我正在尝试通过以下方式进行增强源构建:
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.
这在develop
和master
分支上都会发生。可以做些什么来解决这个错误?提前谢谢。
答案 0 :(得分:9)
来自Boost 1.58 beta release notes:
重要提示
构建脚本存在错误;你必须指定 地址模式和架构到b2。我用过:
./b2 address-model=64 architecture=x86
来测试这个。
将这些标志添加到b2
命令可以解决问题,而不必排除context
和coroutine
库(如果您真的使用这些库,就像我一样! )。
当然,如果您要构建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