Как я могу заставить CMake находить мою альтернативную Ускорительную установку?

Я установил новую версию Повышения /usr/local (с включает в /usr/local/include/boost и библиотеки в /usr/local/lib/boost) и я теперь пытаюсь установить вес из источника, но CMake (версия 2.6), может казаться, не находит Ускорительную установку. Это пытается дать полезные предложения об установке BOOST_DIR и Boost_LIBRARYDIR, но я не смог заставить это работать путем тонкой настройки этих переменных.

Новое сообщение об ошибке, что я добираюсь, - то, что это не может найти библиотеки, но это, кажется, указывает, что использует "/usr/local/include" для включать пути, который не корректен (и я, может казаться, не фиксирую его). Существует ли решение для этого от вершины их головы, или я должен пойти, слоняясь без дела в CMake для понимания этого?

50
задан Peter Mortensen 4 September 2018 в 14:32
поделиться

2 ответа

После копания в CMake и экспериментов я определил, что CMake был недоволен тем, что все мои библиотеки Boost содержались в /usr/local/lib/boost, а не в /usr/local/lib. После того, как я мягко связал их обратно, сборка заработала.

3
ответ дан 7 November 2019 в 10:34
поделиться

Вам следует взглянуть на скрипт FindBoost.cmake , который обрабатывает обнаружение Boost и устанавливает все переменные Boost. Обычно он находится в /usr/share/cmake-2.6/Modules/ . В нем вы найдете документацию. Например:

# These last three variables are available also as environment variables:
#
#   BOOST_ROOT or BOOSTROOT      The preferred installation prefix for searching for
#                                Boost.  Set this if the module has problems finding
#                                the proper Boost installation.
#

В отличие от BOOST_ROOT, переменные, на которые вы ссылаетесь, на самом деле являются переменными, которые устанавливаются модулем FindBoost. Обратите внимание, что вам не нужно (и, вероятно, также не нужно) редактировать конфигурацию проекта CMake, чтобы установить BOOST_ROOT. Вместо этого вы должны использовать переменную среды, например вызов

# BOOST_ROOT = / usr / local / ... ccmake.

37
ответ дан 7 November 2019 в 10:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: