CMAKE include_directories

Car*_*s00 6 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})
Run Code Online (Sandbox Code Playgroud)

但编译器说#include <lib1/foo.h>我的库中的一些是未解析的,可能是因为没有-I.../lib1/include命令行参数gcc.

更新:应该说编译器在编译TESTS时抱怨不是mylib.

Sil*_*ker 9

检查以下内容:

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

  2. Quote(")传递给路径include_directories,否则当它被空格分割时,你可能会传递几个路径

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


arr*_*owd 7

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

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