Python调用C语言函数

在C调用Python模块时需要初始化Python解释器,导入模块等

但Python调用C模块却比较简单,ctypes模块提供了和C语言兼容的数据类型和函数来加载dll或so文件,因此在调用时不需对源文件做任何的修改

1.编写C语言代码,可参考 https://www.cnblogs.com/zhouzhishuai/p/9529487.html demo.c 编写。

2.接下来将C文件编译为.so文件(或windows下为dll)输入 gcc demo.c -fPIC -shared -o libdemo.so

其中-shared代表这是动态库,-fPIC使得位置独立(如果程序本来就是独立的话会有警告,无视即可),-o指定了输出文件,改成dll后缀一样可以用。

此时在当前目录下就生成了libhello.so 的动态链接库

3.在Python编辑器里面输入以下代码,就可以看到控制台输出 3 了。

import ctypes
lib = ctypes.cdll.LoadLibrary('libdemo.so文件路径')
res = lib.add(1,2)
print(res)

 

posted @ 2018-08-24 15:40  风在人舟  阅读(3040)  评论(0编辑  收藏  举报