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动态函数库

 

posted @ 2017-07-07 10:19  liulangrenaaa  阅读(1629)  评论(0编辑  收藏  举报