标签:
一, 先用C语言写好一个函数库
#include<stdio.h> 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(执行结查)
标签:
原文地址:http://my.oschina.net/lenglingx/blog/531229