我在尝试使用 Boost.python 从 C++ 访问 Anaconda python 包时遇到了类似的错误。首先让我说,我个人对 C++ Boost 库的印象是,它们是一个很棒的想法,但文档不完整。boost.org 上有大量文档,但它似乎总是遗漏了作者认为太琐碎而无法提及的关键细节。但是,让我离开我的肥皂盒......
我 [希望,最终] 弄清楚如何让 Boost.Python 在我的系统上工作的持续动力是,Anaconda 发行版中包含了很多很棒的 Python 科学包 [SymPy、Numpy、SciPy、matplotlib 等]从使用 Qt Creator 构建的 C++ 项目中访问它们真的很棒。Boost 文档似乎确实建议 Boost.Python 应该为我做这件事。唉,这些文档似乎遗漏了作者认为太琐碎而无法提及的关键细节......
无论如何,最初,我收到一个构建错误,表明找不到 python.h。通过将这两个语句添加到我的 Qt Creator 项目的 .pro 文件中,我摆脱了这种情况,它告诉 qmake Boost 在哪里安装了它的包含文件以及 Anaconda 在我的系统上安装了它的 python.h 文件:
INCLUDEPATH += C:\boost_1_55_0
INCLUDEPATH += C:\Anaconda\include
之后,我收到一个 LNK1104 错误,表明找不到“python27.lib”。通过将这两个语句添加到我的 .pro 文件中,我摆脱了这种情况。第一个告诉 qmake 在哪里可以找到 Anaconda 的 python27.lib 文件。第二个告诉 qmake 在哪里可以找到 boost.python 二进制文件:
LIBS += "C:/Anaconda/libs"
LIBS += "C:/boost_1_55_0/stage/lib/libboost_python-vc110-mt-gd-1_55.lib"
但是,这就是我到目前为止所获得的。我现在收到一个错误,表明它无法打开我尚未找到修复的文件“C:/Anaconda/libs.obj”。当然,该错误是由该文件不存在引起的。挑战在于发现为什么要寻找它以及在哪里找到它。