我正在尝试使用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
时抱怨。
答案 0 :(得分:9)
检查以下内容:
路径${CMAKE_SOURCE_DIR}/lib1/include/lib1/foo.h
是否存在?
引用("
)传递给include_directories
的路径,否则当它被空格分割时,您可能会传递多条路径
尝试运行make VERBOSE=1
以确切了解传递给gcc的选项
答案 1 :(得分:7)
尝试在add_library之前移动include_directories()
invokation。
add_library()
指示CMake使用当前的编译器标志集将源编译到库中。编译后更改这些标志没有任何影响。 CMake语言不是声明性的。