Python使用C语言生成的库
来源:互联网 发布:金税盘开票软件最新版 编辑:程序博客网 时间:2024/04/26 00:11
下载需要的工具
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函数及接口文件
写一个简单的检测回文数的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
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
成功
0 0
- Python使用C语言生成的库
- 使用C语言生成bitmap
- C语言使用matlab生成的滤波器头文件
- 使用C语言扩展Python
- 使用C语言扩展Python
- Qt生成动态库及其使用(类似C语言方式的)
- 巩固C语言(九)----静态库文件的生成和使用、劫持技术
- c语言 根据字符串生成QR二维码 libqrencode库的使用
- python :使用 C语言 扩展 python
- python使用 C语言类型、ctypes 的用法
- 使用单链表随机生成偶数--C语言
- c语言生成动态库
- c语言生成动态库
- 使用python向C语言的链接库传递数组、结构体、指针类型的数据
- 构造使用类C语言的脚本引擎(5)语法检查,生成语法树,代码生成。
- 用Python 生成 不同语言的MAVLink 开发库
- Python 的C语言扩展
- C语言“#”的使用
- Java接口实验,计算矩形和圆的周长和面积
- 2010 Asia Regional Tianjin Site —— Online Contest (线段树二维转一维,2-SAT,floyed变形)hdu3621-3631
- android学习笔记(18)数据库sqlite初步
- Http协议详解2
- POJ 1860 Currency Exchange
- Python使用C语言生成的库
- CocoaPods升级
- springboot 试用笔记
- hdu 5001 Walk(概率dp+搜索,矩阵快速幂)
- 【算法】九大排序算法总结
- 数组中未出现的最小正整数
- MATLAB中cell函数
- STC单片机使用RS485下载程序方法
- android存储方式之文件存储