0%

c扩展-动态链接库

c程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int func_add(int a, int b)
{
return a+b;
}
int main(int argc, char **argv)
{
int a=1;
int b=2;
int c = 0;
c = func_add(a,b);
printf("%d\n",c);
return 0;
}

编译

1
2
# 编译成动态链接库(即.so文件)
gcc -fPIC -shared cmain.c -o clib.so

调用

1
2
3
4
import ctypes   # 加载c动态链接库
cfunc = ctypes.CDLL("./clib.so")
def main():
print(cfunc.func_add(10,11))