我正在尝试使用 BoostPython 用 C++ 编写程序。
我的预设是:
一个。Win32 控制台应用程序。
湾。属性->C/C++->常规->附加包含目录->C:\Python27\include;C:\Program Files\boost\boost_1_54_0;
C。属性->链接器->常规->附加库方向->C:\Python27\libs;
d。微软 Visual Studio 2012 速成版 + Python 27 + Boost 1.54
我的代码如下:
#include <boost/python.hpp>
using namespace boost::python;
int main( int argc, char ** argv )
{
return 0;
}
如您所见,此代码带有一个空的 main 函数。我收到一条错误消息
错误 LNK1104:无法打开文件 'boost_python-vc110-mt-gd-1_54.lib'
我检查了 boost ('bootstrap.bat'+'bjam.exe') 的安装,并在安装了 boost 库的文件夹中搜索了 'boost_python-vc110-mt-gd-1_54.lib',但一无所获.
我查找了一些类似的帖子,与我的问题不同,他们错过的 lib 文件带有前缀“lib”。另一方面,我发现这篇文章与我的非常相似。但是我发现 OP 在解决他/她的问题时犯了一个错误。也就是说,Boost 与 python 2.2 及其更新版本兼容。他的其余回答对我没有帮助。
我猜这个问题可能是因为我在安装过程中做错了什么,或者当我将库链接到我的应用程序时我错了。
谁能帮我解决这个问题?一个详细的解决方案会很棒。非常感谢。:)
==================================================== =============
编辑:
我已经使用预构建的二进制文件重新安装了 Boost。现在我可以链接到编译器要求的 lib 文件。然而,新的问题也随之而来。现在我有两个新错误:
错误 LNK2001:未解析的外部符号 __imp___Py_NoneStruct
错误 LNK1120:1 未解决的外部
当我注释掉该行时#include <boost/python.hpp>
,上述错误就消失了。
我实在想不通原因。谁能帮我这个?非常感谢。