Привет, великие умы от stackoverflow. Мой проект строит Boost с помощью команды CMake ExternalProject_Add
. Команда b2
build выглядит следующим образом:
b2 -j${num_processors} -d 0 --layout=versioned threading=multi architecture=x86 address-model=64 link=shared --with-system --with-thread --with-date_time --with-chrono --with-atomic variant=${config_type} --prefix=${UNRELEVANT_PATH} --stagedir=${UNRELEVANT_PATH} install stage
num_processors
, config_type
и UNRELEVANT_PATH
- переменные CMake для числа ядер на компьютере сборки, типа варианта сборки и путей для установки. Эта команда работает для Boost 1.62 с использованием g cc 4.8.1 и Visual Studio 2015. Сейчас мы выполняем обновление до Boost 1.72.0, и она завершается с ошибкой на обоих компиляторах:
Performing configuration checks
- default address-model : 64-bit
- default architecture : x86
- lockfree boost::atomic_flag : yes
error: Name clash for '<p/my/path/to/boost/lib/cmake/boost_atomic-1.72.0>boost_atomic-config.cmake'
error:
error: Tried to build the target twice, with property sets having
error: these incompatible properties:
error:
error: - none
error: - none
error:
error: Please make sure to have consistent requirements for these
error: properties everywhere in your project, especially for install
error: targets.
I ничего не сделал, кроме замены исходных файлов на буст с 1.62 до 1.72.0. Я не смог найти никаких существенных различий в документации b2
между этими версиями. Я что-то пропустил?
Я пытался удалить флаг --with-atomic
, и он просто не работает в следующей библиотеке с той же ошибкой. Я пробовал разные варианты для --layout
, threading
и architecture
без удачи. Любые предложения о том, что я должен продолжить расследование, чтобы решить эту проблему?