python调用动态链接库的基本过程
动态链接库在Windows中为.dll文件,在linux中为.so文件。以linux平台为例说明python调用.so文件的使用方法。
本例中默认读者已经掌握动态链接库的生成方法,如果不太清楚的可以参考动态链接库的使用
调用上例动态链接库的使用中的sum.so
import ctypes
so = ctypes.CDLL('./sum.so')
print "so.sum(50) = %d" % so.sum(50)
so.display("hello world!")
print "so.add() = %d" % so.add(ctypes.c_float(2), ctypes.c_float(2010))
output
so.sum(50) = 1275
hello world!
so.add() = 2012
注意:
- 如果python在调用C函数内部出现了问题,系统不会提示具体出现什么问题,只会提示"segmentation fault"。所以最好是先用C语言调用该动态库验证没有问题了再提供给python调用。
- python传参给C函数时,可能会因为python传入实参与C函数形参类型不一致会出现问题( 一般