1、下载pcre库 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz
2、下载SWIG:wget http://sourceforge.net/projects/swig/files/latest/download?source=typ_redirect
安装pcre
安装swig
可能会提示找不到pcre库,pcre默认安装再/usr/local/bin里,需要在系统环境变量中指定该路径:
vim ~/.bash_profile
export PATH=$PATH:/usr/local/bin
保存退出并运行该文件:. ~/.bash_profile
写一个简单的检测回文数的C程序 palindrome.c:
#include <string.h>
int is_palindrome(char* text)
{
if (NULL == text)
return 0;
int i;
int len = strlen(text);
char* low = text;
char* high = text + len - 1;
while (low <= high)
{
if (*low != *high)
{
return 0;
}
++low;
--high;
}
return 1;
}
接口文件 palindrome.i
%module palindrome
%{
#include <string.h>
%}
extern int is_palindrome(char* text);
swig -python palindrome.i
找不到pcre.so.1
解决办法
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
此时生成两个文件:palindrome_wrap.c palindrome.py
gcc -fPIC -o palindrome.o -c palindrome.c
gcc -fPIC -o palindrome_wrap.o -I/usr/include/python2.6 -c palindrome_wrap.c
gcc -shared -o _palindrome.so palindrome.o palindrome_wrap.o
这时会生成一个文件 _palindrome.so,这就是Python可用的库文件
>>> import _palindrome
>>> _palindrome.is_palindrome("12321")
1
>>> _palindrome.is_palindrome("123212")
0
成功