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