Сбой при сборке после обновления до 1.72.0 - одна и та же цель дважды - PullRequest
0 голосов
/ 01 мая 2020

Привет, великие умы от 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 без удачи. Любые предложения о том, что я должен продолжить расследование, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 01 мая 2020

Видимо, я все это время делал неправильно. Вы не должны устанавливать --prefix и --stagedir в одном месте. Предыдущие итерации повышения, похоже, не заботятся об этой проблеме. Одна из более поздних версий начала заботиться, что вызвало мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...