无法与boost.python和python3链接

时间:2017-05-18 04:18:46

标签: python c++ python-3.x boost boost-python

当我尝试编译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.dllboost_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);
}

1 个答案:

答案 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文件。