当我尝试编译boost.python' Hello World'在Win10上的Visual Studio 2017中编程,我遇到以下链接错误:
LNK1104 cannot open file 'boost_python-vc141-mt-1_64.lib'
但是,我希望链接到python3版本。我用这个命令构建了我的boost.python库
b2 --with-python variant=release link=shared address-model=64
在我的project-config.jam文件中使用using python : 3.6 ;
生成
boost_python3-vc141-mt-1_64.dll
和boost_python3-vc141-mt-1_64.lib
我不知道为什么我的项目试图与python2版本链接。我从来没有指定要链接的boost.python库的任何地方,我不知道在哪里更改它。
如果重要,这是我试图编译的c ++程序(到x64 .dll)
#include <boost/python.hpp>
char const* greet() {
return "hello, world";
}
BOOST_PYTHON_MODULE(hello_ext) {
using namespace boost::python;
def("greet", greet);
}
答案 0 :(得分:0)
根据我的经验,在Windows / VC ++上Boost.Python的自动链接总是搜索boost_python-vc<blah-blah-blah>.lib
,无论Python版本如何。在针对Python 3构建时,b2实际上会生成两组lib文件:boost_python-vc...
和boost_python3-vc...
。它们是相同的,只有名称不同。因此,如果您没有boost_python-vc141-mt-1_64.lib
个文件,请删除boost_python3-vc141-mt-1_64
重命名您的3
lib和dll文件。