使用C语言编译产生共享库,然后python使用ctype库里的cdll来打开共享库。
(1)C语言文件:pycall.c
#include
(2)gcc编译生成动态库libpycall.so:gcc -o libpycall.so -shared -fPIC pycall.c。使用g++编译生成C动态库的代码中的函数或者方法时,需要使用extern "C"来进行编译。
(3)Python调用动态库的文件:pycall.py
import ctypes ll = ctypes.cdll.LoadLibrary lib = ll("./libpycall.so") lib.foo(1, 3) print('***finish***')
(注意在linux下测试效果比较好)