CMAKE include_directories - PullRequest
       4

CMAKE include_directories

6 голосов
/ 19 ноября 2011

Я пытаюсь связать свою библиотеку с другой библиотекой lib1, используя CMAKE 2.8. Надо сказать, что это на Windows.

В CMakeLists.txt У меня есть:

add_library(mylib ${sources})
include_directories(${CMAKE_SOURCE_DIR}/lib1/include)
target_link_libraries(mylib ${lib1_path})

Но компилятор говорит, что некоторые значения #include <lib1/foo.h> в моей библиотеке не разрешены, возможно, из-за отсутствия параметра -I.../lib1/include командной строки для gcc.

ОБНОВЛЕНИЕ : Следует сказать, что компилятор жалуется при компиляции тестов, а не mylib.

Ответы [ 2 ]

9 голосов
/ 19 ноября 2011

Проверьте следующее:

  1. Существует ли путь ${CMAKE_SOURCE_DIR}/lib1/include/lib1/foo.h?

  2. Цитировать (") путь, переданный include_directories, в противном случае вы можете пропустить несколько путей, когда он разделен пробелами

  3. Попробуйте запустить make VERBOSE=1, чтобы точно узнать, какие параметры передаются в gcc

7 голосов
/ 19 ноября 2011

Попробуйте переместить include_directories() вызов до add_library.

add_library() указывает CMake скомпилировать ваши исходники в библиотеку, используя текущий набор флагов компилятора.Изменение этих флагов после компиляции не имеет никакого эффекта.Язык CMake не является декларативным.

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