用swig进行python扩展c语言(范例+错误解决)
来源:互联网 发布:结构方程模型软件 编辑:程序博客网 时间:2024/06/06 16:24
范例来自:http://www.iamlicky.cn/post/221.html
平台是linux,window下编译环节比较麻烦,所以放弃了。
a)首先编写你的c函数,比如如下创建一个test.c文件:
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- void
- func (int n )
- {
- printf("This is hello message came from C src!");
- printf("Let me show u something:/n");
- int i=0;
- for(i=1;i<n;i++){
- int j=1;
- for(j=1;j<i+1;j++)
- printf("%d*%d = %2d ", j, i, i*j);
- printf("/n");
- }
- printf("Did u enjoy it?/nBye,Bye, have fun @.@!/n");
- }
- char * get_time(){
- time_t ltime;
- time(<ime);
- return ctime(<ime);
- }
b)编写接口文件test.i:
- %module test
- %{
- /*Put header files here or function declarations like below*/
- extern void func(int n);
- extern char * get_time();
- %}
- extern void func(int n);
- extern char * get_time();
c)编译:
- #swig -python test.i (这里给个提示,如果是扩展c++,这里应该这样swig -c++ -python test.i)
- #gcc -c test.c test_wrap.c -I/usr/include/python2.6 (1》这里可能出现找不到Python.h,或者出现大量的定义神马错误,是缺少python-dev包,即包含各种头文件等的包,请goole:python-dev包 OR在此链接下载(注意版本),http://packages.debian.org/squeeze/python2.6-dev
1.2》我把dev包的内容覆盖好之后,又提示缺少pyconfig.h,如果没记错的话— —!,要把pyconfig-32.h改为pyconfig.h即可
2》提示gcc error,可能是你的linux木有gcc,请自行下载,扩展c++请下载多一个g++) - #ld -shared test.o test_wrap.o -o _test.so
- 用swig进行python扩展c语言(范例+错误解决)
- 通过SWIG用C语言编写Python扩展
- SWIG and Python(用SWIG将C/C++封装为Python扩展模块)
- 使用swig进行C/C++对Python的扩展
- 使用SWIG对Python进行扩展
- 用 SWIG 生成 TidyLib 的 Python 扩展
- 高效开发Python扩展模块方法:用SWIG封装C/C++代码
- 高效开发Python扩展模块方法:用SWIG封装C/C++代码
- 使用swig为python添加c扩展总结
- 使用Swig为Python程序添加C扩展
- Python调用C/C++(使用SWIG)
- 使用SWIG和Python对C/C++进行单元测试(一)
- 使用SWIG和Python对C/C++进行单元测试(二)
- 使用SWIG和Python对C/C++进行单元测试
- 使用SWIG来扩展Python
- swig c python
- Python与C++,SWIG
- C语言扩展Python
- 使用过程模板简化团队项目
- js中的break ,continue, return
- linux下安装配置使用memcache,memcached,libevent(后有ubuntu的memcache安装)
- Erlang 聊天室程序(五) 设置客户端信息
- 面试问题汇总 精选 分析 解答 职业规划 part 4
- 用swig进行python扩展c语言(范例+错误解决)
- Lucene 3.5.0版本的主要变化
- Android中自定义SeekBar的背景颜色,进度条颜色,以及滑块的图片
- 十进制转换为二进制(主函数中完成)
- hash函数的几种
- IE的iframe中设置COOKIE的BUG
- 2010年清华大学计算机研究生机试真题
- 第二周实验报告2
- 使用LinqDataSource案例