如何将 Python 绑定到包含 Jsoncpp 的 C++ 代码?

How to bind Python to C++ code that includes Jsoncpp?

正在编写代码,使 Python 能够通过 Python 的 ctypes 模块调用编译到共享库文件(.so 文件)中的 C++ 代码,使用标准 ctypes.CDLL 方法。 C++代码进行数值计算,Python代码主要作为控制器,进行数据分析。一切正常。但是,一旦我在 C++ 代码中包含 jsoncpp 库,Python 就开始抱怨未定义的符号错误,例如 undefined symbol: _ZN4Json5ValueaSES0_ 等。我在 C++ 中使用 jsoncpp 库主要是为了将数据导出到 JSON 文件。在互联网上搜索了一段时间后,似乎还没有讨论那么多。知道如何处理这个吗?

好吧,看起来解决方案是在编译共享 .so 文件时也包括 -ljsoncpp 标志:

 $(CC) -shared -o testcode.so testcode.o -ljsoncpp