我正在尝试将 C++ 和 Python 与 Boost.Python 联系起来。
我有 Visual Studio 2012 Express 版本、Python 2.7 和 Boost 1.54。
我按照Boost官方网站的说明在我的机器上安装了Boost,这意味着我遵循了以下步骤:
我下载预构建的二进制文件并将其安装在
C:\local\boost_1_54\
.我跑 bjam
b2 --build-dir=C:\local\boost_1_54 toolset=msvc11.0 --build-type=complete stage
。
然后我在属性面板中进行了这样的操作:
添加
C:\local\boost_1_54\; C:\Python27\include;
到 C/C++->General->Additional Include Directories。添加
C:\local\boost_1_54\libs; C:\local\boost_1_54\lib64-msvc-11.0; C:Python27\libs;
到链接器->常规->附加库目录。设置
"Not Using Precompiled Headers"
为 C/C++->预编译头文件->预编译头文件。
我创建了一个空项目,其中的源代码非常简单,如下所示(我实际上尝试运行一个 hello world 示例,但不得不减少代码以排除干扰):
#include <boost/python.hpp>
int main()
{
return 0;
}
但是,当我尝试构建解决方案时,会弹出两个错误:
错误 LNK2001:未解析的外部符号
__imp___Py_NoneStruct
错误 LNK1120:1 未解决的外部
我评论了这一行#include <boost/python.hpp>
,然后错误就消失了。
让我感到困惑的是,我发现 python.hpp 位于它应该存在的文件夹中。
我可以知道我错了吗?
==================================================== ========
编辑:
我尝试#include <Python.h>
在代码中使用。但它引发了另一个错误
错误 LNK1104:无法打开文件“python27_d.lib”
任何人都可以帮助我吗?