(转载至 Chatgpt )
1. 根据系统构建 共享库/动态连接库
windows .dll文件
gcc -c -Wall example.c -o example.o #构建目标文件
gcc -shared -o example.dll example.o #构建dll文件
UNIX/Linux .so文件
gcc -c -fPIC example.c -o example.o #构建目标文件
gcc -shared example.o -o libexample.so #构建.so文件
2. 导入 共享库/动态连接库
import ctypes
lib = ctypes.CDLL("libexample.so") # UNIX/Linux
lib = ctypes.WinDLL("example.dll") # Windows
3. 定义C函数的参数类型和返回类型
# 示例:int add(int a, int b);
lib.add.restype = ctypes.c_int
lib.add.argtypes = [ctypes.c_int, ctypes.c_int]
4. 调用 C函数
result = lib.add(5, 3)
print(reslut)