cmake 3.0.2 не может найти повышение на 14,04

У меня есть последний 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?

Спасибо.

6
задан 20 November 2014 в 19:04

4 ответа

Какую версию libboost-all-dev Вы используете? Я предполагаю, что Вы используете v1.53.0.

Попытка, устанавливающая libboost1.54-all-dev вместо этого.

4
ответ дан 17 November 2019 в 09:06

Спасибо, Rohith.

Как альтернативное решение, я загрузил и создал последнюю версию из повышения и добавил переменную BOOST_ROOT в ~/.profile как это:

export BOOST_ROOT=$HOME/work/boost_1_57_0

Примечание, то повышение должно быть создано, если Вы используете, это - библиотеки незаголовка.

2
ответ дан 17 November 2019 в 09:06

Я также встречаю такое неловкое положение в человечности...

Мое решение просто не, используют find_package, но добавление библиотек в процессе ссылки

target_link_libraries( your_program boost_system boost_filesystem ... )

, плохие вещи состоят в том, что cmake не может исследовать существование boost библиотека. Однако это просто работает.

Hope кто-то может выяснить лучшее решение.

1
ответ дан 17 November 2019 в 09:06

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

2
ответ дан 17 November 2019 в 09:06

Другие вопросы по тегам:

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