gpt4 book ai didi

python - 链接到 Boost python 3.6。找不到 boost_python 而不是 boost_python3

转载 作者:搜寻专家 更新时间:2023-10-31 02:11:03 26 4
gpt4 key购买 nike

我在链接 boost python 时遇到问题。

我正在使用 Visual Studio 2017 并使用以下命令行编译了 boost 1_64 包:

b2 -a toolset=msvc-14.1 --build_type=complete stage variant=debugthreading=multi link=shared runtime-link=shared define=_ITERATOR_DEBUG_LEVEL=0 address-model=64

使用这个 user-config.jam:

using python 
: 3.6 # Version
: C:\\Python36\\python.exe # Python Path
: C:\\Python36\\include # include path
: C:\\Python36\\libs # lib path(s)
: <define>BOOST_ALL_NO_LIB=1
;

但是在使用运行时库构建我的 c++ 项目时:多线程 DLL (/MD) 我不断收到此错误消息:

Error   LNK1104 cannot open file 'boost_python-vc141-mt-gd-1_64.lib'    

但我编译的 boost 库包含以下 boost_python 文件:

boost_python3-vc141-mt-gd-1_64.dll
boost_python3-vc141-mt-gd-1_64.lib

有人有使用 boost for python 3 的经验吗?经过几个小时的尝试,我找不到好的解决方案。顺便说一句:将文件重命名为 boost_python-(删除 3)工作正常。但我不认为这是正确的方法


VC 项目设置:

添加。包括目录:

C:\Python36\include;D:\ws\boost_1_64_0\boost_1_64_0;

添加。库目录:

D:\ws\boost_1_64_0\boost_1_64_0\stage\lib;C:\Python36\libs;

关闭:boost 的自动链接功能无法与 python 3 一起正常工作。boost_module_name 宏设置为 boost_python(缺少 3)并且生成的库包含 3。

--> 关闭自动链接并手动添加所需的库。


解决方案a) 转到 boost/python/detail/config.hpp 并将 BOOST_LIB_NAMe 更改为 boost_python3 而不是 boost_python。

解决方案b) 通过定义 BOOST_ALL_NO_LIB 来打开自动链接,然后将 boost_python3...lib 显式设置为链接器依赖项。

最佳答案

你提供

boost_python3-vc141-mt-gd-1_64.dll
boost_python3-vc141-mt-gd-1_64.lib

但缺少错误报告

boost_python-vc141-mt-gd-1_64.lib

(找出不同之处!)

很明显,您的 IDE (VS) 尝试构建 python,而不是 python3 扩展。我不知道 VS,但必须以某种方式改变它。

关于python - 链接到 Boost python 3.6。找不到 boost_python 而不是 boost_python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44153858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com