在C調用Python模塊時需要初始化Python解釋器,導入模塊等
但Python調用C模塊卻比較簡單,ctypes模塊提供了和C語言兼容的數據類型和函數來加載dll或so文件,因此在調用時不需對源文件做任何的修改
1.編寫C語言代碼,可參考 https://www.cnblogs.com/zhouzhishuai/p/9529487.html demo.c 編寫。
2.接下來將C文件編譯為.so
文件(或windows下為dll)輸入 gcc demo.c -fPIC -shared -o libdemo.so
其中-shared代表這是動態庫,-fPIC使得位置獨立(如果程序本來就是獨立的話會有警告,無視即可),-o指定了輸出文件,改成dll后綴一樣可以用。
此時在當前目錄下就生成了libhello.so 的動態鏈接庫
3.在Python編輯器里面輸入以下代碼,就可以看到控制台輸出 3 了。
import ctypes lib = ctypes.cdll.LoadLibrary('libdemo.so文件路徑') res = lib.add(1,2) print(res)