python调用C动态函数库的问题(linux平台)
首先新建了test_a.c ,test_b.c ,test_c.c三个.c文件与so_test.h头文件,编写好test_a.c ,test_b.c ,test_c.c中具体函数后,在so_test.h中声明test_a.c ,test_b.c ,test_c.c中具体函数,然后再linux的shell终端进行编译
gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtestx.so
生成libtestx.so文件,然后ls查看全部文件
tom@ubuntu:~$ ls cnm Downloads juzhen1.py Pictures Templates test_c.c cnm.tar.gz examples.desktop libtest.so Public test Videos Desktop foo.txt libtestx.so shell.sh test_a.c diaoyong.py groups.txt main so_test.h test_b.c Documents haha.txt Music src test.c
已经生成了libtestx.so文件
在同一目录下新建diaoyong.py输入代码如下
from ctypes import cdll cur = cdll.LoadLibrary('libtest.so') cur.test_a() cur.test_b() cur.test_c() print 'hahahaha'
然后保存退出,即可与运行diaoyong.py
结果为
This is test_aThis is test bThis is test_chahahaha
完成python调用C动态函数库