Boost build breaks: столкновение имен для системы libboost.Итак.1.58.0'

Я пытаюсь сделать сборку источника 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.

это происходит на обоих develop и master филиала. Что можно сделать чтобы исправить эту ошибку? Спасибо заранее.

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;

С Boost 1.58 beta примечания к выпуску:

Важное Замечание

существует ошибка со сценариями сборки; вы должны указать адрес-режим и архитектура для b2. Я использовал:

./b2 address-model=64 architecture=x86

чтобы проверить это.

добавление этих флагов в b2 команда решает проблему без исключения context и coroutine библиотеки (удобно, если, скажем, вы на самом деле используйте эти библиотеки, как и я!).

естественно, если вы создаете 32-битные библиотеки, вы хотите добавить .


это ошибка в текущем git master.

в качестве обходного пути явно укажите параметры адресной модели и архитектуры в командной строке:

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