Увеличить заголовки, не найденные с помощью cmake - PullRequest
3 голосов
/ 06 января 2011

Этот вопрос очень похож на Почему этот файл заголовка надстройки не включен , но подсказки там (кажется) не решают мою проблему.

Я получил CMakeLists.txt

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(jetorigin)

SET(Boost_ADDITIONAL_VERSIONS "1.43" "1.43.0" "1.44" "1.44.0" "1.45" "1.45.0")
SET(BOOST_ROOT "$ENV{HOME}/usr")
MESSAGE(STATUS "** Search Boost root: ${BOOST_ROOT}")
FIND_PACKAGE(Boost 1.43 COMPONENTS filesystem regex REQUIRED)
 MESSAGE(STATUS "** Boost Include: ${Boost_INCLUDE_DIR}")
 MESSAGE(STATUS "** Boost Libraries: ${Boost_LIBRARY_DIRS}")
 MESSAGE(STATUS "** Boost Libraries: ${Boost_LIBRARIES}")

INCLUDE_DIRECTORIES(${BOOST_INCLUDE_DIR})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})

ADD_SUBDIRECTORY(src)

И включите в свой код некоторые заголовки повышения, например:

#include <boost/regex.hpp>
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>

Теперь вывод из cmake выглядит нормально

-- ** Search Boost root: /home/oli/usr
-- Boost version: 1.43.0
-- Found the following Boost libraries:
--   filesystem
--   regex
-- ** Boost Include: /home/oli/usr/include
-- ** Boost Libraries: /home/oli/usr/lib
-- ** Boost Libraries: /home/oli/usr/lib/libboost_filesystem.so;/home/oli/usr/lib/libboost_regex.so

Но я получаю эту ошибку:

error: boost/regex.hpp: No such file or directory

(и аналогично для других включает). Полный вывод команды make VERBOSE = 1 можно найти здесь http://pastebin.ca/2039425. Похоже, что флаг -I не добавлен, хотя Boost_INCLUDE_DIR, кажется, установлен правильно.

Кстати, я использую CMake 2.8.1. Я был бы очень признателен за любые намеки на то, что здесь происходит не так ..


EDIT: Я нашел проблему. Кажется, я извлек какую-то древнюю версию моего стандартного CMakeLists.txt из глубины моих архивов. Это должно быть:

INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})

(обратите внимание на заглавные "Boost") ... Возможно, более старые версии CMake были более терпимыми в этом отношении, или, к несчастью, я просто решил начать с версии моего CMakeLists.txt с нефиксированной ошибкой ..

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