一, 先用C语言写好一个函数库
#include
int add(int num1, int num2)
{
return num1 + num2;
}
int sub(int num1, int num2)
{
return num1 - num2;
}
int mul(int num1, int num2)
{
return num1 * num2;
}
int div(int num1, int num2)
{
return num1 / num2;
}
二, 然后使用gcc编译成静态库
gcc -c -fPIC math.c
gcc -shared math.o -o math.so
三, 使用python的ctypes库导入该静态库
#!/opt/python3/bin/python3
#
from ctypes import *
import os
print("begin ......")
libmathpath = os.path.join(os.getcwd(),"math.so")
print(libmathpath)
libmath = CDLL(libmathpath)
print("-----------------")
print(" ADD: 21 89")
print(libmath.add(21,89))
print("-----------------")
print(" SUB: 124 89")
print(libmath.sub(123,89))
print("-----------------")
print(" MUL: 12 77")
print(libmath.mul(12,77))
print("-----------------")
print(" DIV: 183 3")
print(libmath.div(183,3))
print("-----------------")
4, 执行结果如下:
begin ......
/home/git/math.so
-----------------
ADD: 21 89
110
-----------------
SUB: 124 89
34
-----------------
MUL: 12 77
924
-----------------
DIV: 183 3
61
-----------------
如图1(math.c源码)
如图2(testmath.py)源码
如图3(执行结查)