Boost构建中断:'<pstage/lib> libboost_system.so.1.58.0'的名称冲突

use*_*717 10 boost

我正在尝试通过以下方式进行增强源构建:

git clone --recursive https://github.com/boostorg/boost.git
cd boost
./bootstrap
./b2 link=shared threading=multi variant=release --without-mpi
Run Code Online (Sandbox Code Playgroud)

这会出现以下错误消息:

error: Name clash for '<pstage/lib>libboost_system.so.1.58.0'
error: 
error: Tried to build the target twice, with property sets having 
error: these incompabile properties:
error: 
error:     -  none
error:     -  <address-model>64 <architecture>x86
error: 
error: Please make sure to have consistent requirements for these 
error: properties everywhere in your project, especially for install
error: targets.
Run Code Online (Sandbox Code Playgroud)

这发生在develop和master分支上.可以做些什么来解决这个错误?提前致谢.

HC4*_*ica 12

从Boost 1.58 beta版发行说明:

重要的提示

构建脚本存在错误; 你必须为b2指定地址模式和架构.我用了:

./b2 address-model=64 architecture=x86

测试这个.

将这些标志添加到b2命令可以解决问题,而不必排除context和coroutine库(如果你真的使用这些库,就像我一样!).

当然,如果您正在构建32位库,则需要添加address-model=32.

  • @NickThompson:`--address-model`和`--architecture`似乎没有做任何事情 - 指定这些选项的正确方法是没有破折号.(这可以解释为什么用破折号添加选项没有效果!) (4认同)

Lim*_*ent 3

我能够使用/sf/answers/1951993991/的建议进行构建。我正在编译branch boost-1.57.0,我开始编译branch boost-1.56.0,它也过了这一点。总结一下,我跑了

git co boost-1.57.0;
./bootstrap.sh --prefix=/home/me/builds/development;
./b2 --prefix=/home/me/builds/development -j9 --without-context --without-coroutine;
Run Code Online (Sandbox Code Playgroud)

  • 我想这让我解决了编译问题,但我只是不明白为什么没有人知道如何构建整个 boost 库。我宁愿不这样做。 (7认同)