我解析一个C++项目,该项目编译为python的library.so。所以我不能在Qt Creator IDE中调试它。为此,我使用可执行文件main()创建了一个单独的项目:

int main()
{
    boost::python::dict whiteList;
    whiteList.has_key("blablabla");
    ...
    return 0;
}

在 Release模式下,程序会编译并无法正常工作。但是在 Debug模式下,程序在带有错误窗口的has_key()方法中失败:
The inferior stopped because it received a signal from the Operating System.
Signal name :    SIGSEGV
Signal meaning : Segmentation fault

可能的问题是:如何仅在boost::python::dict程序内部纯净地正确创建和使用C++而又不涉及python脚本?

最佳答案

每当使用Python C API或Boost Python时,都必须初始化Python:

Py_Initialize();

将其添加到main()和voila的顶部。

关于c++ - 如何创建空的工作boost::python::dict?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25634523/

10-16 19:07
查看更多