【问题标题】:Trouble linking with boost.python and python3与 boost.python 和 python3 的链接问题
【发布时间】:2017-05-18 04:18:46
【问题描述】:

当我尝试在 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

在我的 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);
}

【问题讨论】:

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


    【解决方案1】:

    根据我的经验,在 Windows/VC++ 上,Boost.Python 的自动链接总是搜索 boost_python-vc&lt;blah-blah-blah&gt;.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 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 2011-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多