CMAKE include_directories

时间:2011-11-19 08:49:30

标签: c++ c gcc cmake

我正在尝试使用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命令行参数。

UPDATE :应该说编译器在编译TESTS而不是mylib时抱怨。

2 个答案:

答案 0 :(得分:9)

检查以下内容:

  1. 路径${CMAKE_SOURCE_DIR}/lib1/include/lib1/foo.h是否存在?

  2. 引用(")传递给include_directories的路径,否则当它被空格分割时,您可能会传递多条路径

  3. 尝试运行make VERBOSE=1以确切了解传递给gcc的选项

答案 1 :(得分:7)

尝试在add_library之前移动include_directories() invokation。

add_library()指示CMake使用当前的编译器标志集将源编译到库中。编译后更改这些标志没有任何影响。 CMake语言不是声明性的。