У меня есть последний cmake 3.0.2 скомпилированных из источников, также libboost-all-dev установленный. И find_package (Повышение) не может найти его. Вот вывод cmake:
Unable to find the requested Boost libraries.
Unable to find the Boost header files. Please set BOOST_ROOT to the root
directory containing Boost of BOOST_INCLUDEDIR to the directory containing
Boost's headers.
Я должен вручную установить какие-либо переменные после установки Повышения для получения его видимый для cmake?
Спасибо.
Какую версию libboost-all-dev
Вы используете? Я предполагаю, что Вы используете v1.53.0.
Попытка, устанавливающая libboost1.54-all-dev
вместо этого.
Спасибо, Rohith.
Как альтернативное решение, я загрузил и создал последнюю версию из повышения и добавил переменную BOOST_ROOT в ~/.profile как это:
export BOOST_ROOT=$HOME/work/boost_1_57_0
Примечание, то повышение должно быть создано, если Вы используете, это - библиотеки незаголовка.
Я также встречаю такое неловкое положение в человечности...
Мое решение просто не, используют find_package
, но добавление библиотек в процессе ссылки
target_link_libraries( your_program boost_system boost_filesystem ... )
, плохие вещи состоят в том, что cmake
не может исследовать существование boost
библиотека. Однако это просто работает.
Hope кто-то может выяснить лучшее решение.
В 14,04 (и вероятно ранее) к 16,04, я мог использовать их:
find_package( Boost COMPONENTS filesystem system REQUIRED )
include_directories(
${BOOST_INCLUDE_DIRS}
)
target_link_libraries(${PROJECT_NAME}
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
}
, Если Вам только нужны заголовки, затем Вы не должны указывать компонент и никакой target_link_libraries()
:
find_package( Boost REQUIRED )
include_directories(
${BOOST_INCLUDE_DIRS}
)
С 16,10, я должен был удостовериться, что установил libboost-all-dev
, таким образом, мой код продолжит компилировать на Ubuntu.
sudo apt-get install libboost-all-dev
Предыдущие версии работали со всего libboost-dev
, так или иначе. Хотя похоже, что Вам уже выяснили ту часть, я просто хотел удостовериться, что было ясно упомянуто, что было недавнее изменение в том отношении.