我正在尝试在我的计算机上安装 Boost.Python。(Windows7 64 位、Visual Studio 2012、Python 2.7 64 位和 Boost 1.54)
按照说明,我已经成功安装了 Boost 库,然后我必须单独安装 Boost.Python。
但是,当我按照此处的说明进行操作时。我被困在第 3.1.4 步。
我输入C:\boost_1_54_0\…\quickstart> bjam toolset=msvc --verbose-test test
然后弹出135个未解决的外部错误。其中之一是:
exec.obj:错误LNK2019:函数“class boost::python::api::object __cdecl boost::python::eval(class boost::python::str,class boost::python:中引用的未解析的外部符号__imp__PyEval_GetGlobals: :api::object,class boost::python::api::object)" (?eval@python@boost@@YA?AVobject@api@12@Vstr@12@V3412@1@Z).... ....\bin.v2\libs\python\build\msvc-11.0\debug\boost_python-vc110-gd-1_54.dll
我可以知道如何解决这个问题吗?
==================================================== =======
编辑:
按照@Kyle 的建议,我卸载了 64 位 Python 并将其替换为 32 位 Python (2.7.5)。
然后我写了一个非常简单的代码,如下所示:
#include <boost\python.hpp> // This header used to raise error before
#include <Python.h>
using namespace std;
void main()
{
return;
}
它运作良好。然后我的好奇心让我更进一步,我在第一篇文章中尝试了这个例子。事实证明,那些 135 个未解决的外部错误已经消失了。相反,我有这个:
msvc.link.dll bin\msvc-11.0\debug\extending.pyd LINK:致命错误
LNK1104:无法打开文件'boost_python-vc110-mt-gd-1_54.lib'
调用“C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat”x86
nullink /NOLOGO /INCREMENTAL:NO /DLL /DEBUG /MACHINE:X86 /MANIFEST /subsystem:console /out:"bin\msvc-11.0\debug\extending.pyd" /IMPLIB:"bin\msvc-11.0\debug\extendi ng.lib" /LIBPATH:"C:\Python2.7.5\libs"
@"bin\msvc-11.0\debug\extending.pyd.rsp"if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%
...失败 msvc.link.dll bin\msvc-11.0\debug\extending.pyd
bin\msvc-11.0\debug\extending.lib bin\msvc-11.0\debug\extending.pdb...
...跳过 test_ext 因为缺少扩展.pyd ...
msvc.link bin\test_embed.test\msvc-11.0\debug\test_embed.exe 链接:警告
LNK4001:没有指定目标文件;使用 LINK 的库:错误
LNK2001:未解析的外部符号 _mainCRTStartup
bin\test_embed.test\msvc-11.0\debug\test_embed.exe:致命错误
LNK1120:1 个未解决的外部因素
调用“C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat”x86 nul
链接 /NOLOGO /INCREMENTAL:NO /DEBUG /MACHINE:X86 /MANIFEST /subsystem:console
/out:"bin\test_embed.test\msvc-11.0\debug\test_embed.exe"
/LIBPATH:"C:\Python2.7.5\libs"
@"bin\test_embed.test\msvc-11.0\debug\test_embed.exe.rsp"
if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%
...失败 msvc.link bin\test_embed.test\msvc-11.0\debug\test_embed.exe
bin\test_embed.test\msvc-11.0\debug\test_embed.pdb...
...删除 bin\test_embed.test\msvc-11.0\debug\test_embed.pdb
...跳过 test_embed.run 因为缺少 test_embed.exe ...
...未能更新 5 个目标...
...跳过了 4 个目标...
很抱歉用大量错误消息打扰您,我只想提供尽可能多的信息。
关于这一点boost_python-vc110-gd-1_54.dll
,我可以找到它C:\local\boost_1_54_0_32bit\lib32-msvc-11.0
,而我的 Boost 的根是C:\local\boost_1_54_0_32bit\
.
谁能帮我解决这个问题?