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