Я установил новую версию Повышения /usr/local
(с включает в /usr/local/include/boost
и библиотеки в /usr/local/lib/boost
) и я теперь пытаюсь установить вес из источника, но CMake (версия 2.6), может казаться, не находит Ускорительную установку. Это пытается дать полезные предложения об установке BOOST_DIR и Boost_LIBRARYDIR, но я не смог заставить это работать путем тонкой настройки этих переменных.
Новое сообщение об ошибке, что я добираюсь, - то, что это не может найти библиотеки, но это, кажется, указывает, что использует "/usr/local/include" для включать пути, который не корректен (и я, может казаться, не фиксирую его). Существует ли решение для этого от вершины их головы, или я должен пойти, слоняясь без дела в CMake для понимания этого?
После копания в CMake и экспериментов я определил, что CMake был недоволен тем, что все мои библиотеки Boost содержались в /usr/local/lib/boost
, а не в /usr/local/lib
. После того, как я мягко связал их обратно, сборка заработала.
Вам следует взглянуть на скрипт 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.