from ctypes import cdll
# 此模塊是Python內置的不需要下載
// py_test.c
#include <stdio.h>
int py_test(int n)
{
printf("傳入參數: %d\n", n);
printf("Python調用C動態庫成功!\n");
return 0;
}
gcc py_test.c -shared -fPIC -o py_test_libc.so
from ctypes import cdll
c_function = cdll.LoadLibrary("./py_test_libc.so")
res = c_function.py_test(123)
print(res)
AttributeError: ./庫文件名: undefined symbol: 函數名
不要在C代碼中的函數前面帶
static
關鍵字
OSError: py_test_libc.so: cannot open shared object file: No such file or directory
cdll.LoadLibrary()函數中的路徑必須是絕對路徑
OSError: ./py_test_libc.so: only ET_DYN and ET_EXEC can be loaded
編譯語句請不要加
-c