Python调用C函数学习记录
整体步骤
- 将.c文件编译成.so文件
- Python中调用.so文件
将.c文件编译为.so文件
设现有test.c
和test.h
文件,在命令行中输入
// An highlighted block
gcc -o testlib.so -shared -fPIC test.c
调用.so文件
- 导入.so文件
// An highlighted block
import ctypes
ll = ctypes.cdll.LoadLibrary
lib = ll("./testlib.so")
- 根据函数需要,传入相应的参数,得到返回值
传入参数
传入参数类型为数值型,可用ctypes模块中的函数进行改造,参考这儿
传入参数若为指针,则可用ctypes.byref()函数传递
返回值
默认返回值为int
若为其他类型,必须使用.restype = ×××(×××为某种数据类型)进行设置