我希望能够使用 ctypes python 模块从 python 中使用 C/C++ 函数。
我int doit()
在.c
/.cpp
文件中有一个函数。当我尝试加载共享库时:
Frr=CDLL("/path/FoCpy2/libFrr.so")
Frr.doit(c_int(5))
.c
我发现使用该变体时它工作得非常好。当调用 C++ 时,调用此函数的好方法是(使用nm libFrr.so
using发现nm -gC libFrr.so
只是简单的生成doit()
):
Frr._Z4doitv(c_int(5))
我在 Stackexchange 上读到没有从 python 调用 C++ 的标准方法,并且存在“非标准名称修改”问题。“Z4”是那个问题的一部分吗?我猜非标准名称修饰会出现在更高级的语言功能(如类方法、模板)中,但也适用于这些基本功能?是否可以在 C++ 代码的简单情况下强制使用简单的 C 函数名称?