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

时间:2015-02-08 19:32:54

标签: boost

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

git clone --recursive https://github.com/boostorg/boost.git
cd boost
./bootstrap
./b2 link=shared threading=multi variant=release --without-mpi

这会出现以下错误消息:

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.

这在developmaster分支上都会发生。可以做些什么来解决这个错误?提前谢谢。

3 个答案:

答案 0 :(得分:9)

来自Boost 1.58 beta release notes

  

重要提示

     

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

     

./b2 address-model=64 architecture=x86

     

来测试这个。

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

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

答案 1 :(得分:3)

我能够使用https://stackoverflow.com/a/27885628/200985的建议进行构建。我正在编译分支boost-1.57.0,我开始编译分支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;

答案 2 :(得分:3)

这是当前git master中的一个错误。

作为一种解决方法,请在命令行中明确说明地址模型和体系结构选项:

./b2 link=shared threading=multi variant=release --without-mpi address-model=64 architecture=x86