我希望能夠使用ctypes python模塊從python使用C/C++函數。共享庫符號名稱
我在.c
/.cpp
文件中有一個功能int doit()
。當我嘗試加載共享庫:
Frr=CDLL("/path/FoCpy2/libFrr.so")
Frr.doit(c_int(5))
我覺得它的工作真的很好用的.c
變種時。當C++被稱爲好方法調用這個函數(發現使用nm libFrr.so
使用nm -gC libFrr.so
產生只是普通doit()
):
Frr._Z4doitv(c_int(5))
我已經在Stackexchange閱讀沒有從蟒蛇調用C++標準的方式,並有「非標準名稱修改」問題。 「Z4」是這個問題的一部分嗎?我猜非標準名稱會出現在更高級的語言特性中,例如類方法,模板,但是對於這樣的基本函數呢?是否可以在C++代碼的簡單情況下強制使用簡單的C函數名稱?
extern「C」{your c API} in your header file ... – neagoegab
你應該看看[swig實用工具](http://www.swig.org/),特別是[C++/python支持部分](http://www.swig.org/Doc1.3/Python.html) – didierc