[英]Trouble linking with boost.python and python3
当我尝试在Win10的Visual Studio 2017中编译boost.python'Hello World'程序时,遇到以下链接错误:
LNK1104 cannot open file 'boost_python-vc141-mt-1_64.lib'
但是,我想与python3版本链接。 我使用此命令构建了boost.python库
b2 --with-python variant=release link=shared address-model=64
using python : 3.6 ;
在我的project-config.jam文件中
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);
}
以我的经验,在Windows / VC ++上,Boost.Python的自动链接总是搜索boost_python-vc<blah-blah-blah>.lib
而不管Python版本如何。 在针对Python 3进行构建时,b2实际上会生成2组lib文件: boost_python-vc...
和boost_python3-vc...
它们是相同的,只是名称不同。 因此,如果您没有boost_python-vc141-mt-1_64.lib
文件,请通过删除3
重命名您的boost_python3-vc141-mt-1_64
lib和dll文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.