我想要在子目录thrid_library中添加第三方库,使得项目整体如下
./
./main.cpp
./CMakeLists.txt
.
./thrid_library/libA(libA库自带CMakeLists.txt)
./thrid_library/CMakeLists.txt
对于项目根CMakeLists.txt我是这么写的:
# ... ...
add_subdirectory(thrid_library)
# ... ...
对于thrid_library的CMakeLists.txt我是这么写的:
add_subdirectory(libA)
include_directories(libA)
make之后报错,没找到libA的头文件, 我将include_direstories(libA)
删掉,在根CMakeLists.txt中添加include_direstories(third_library/libA)
才编译成功。
可是,我真的不想include_direstories出现在根CMakeLists.txt,我应该怎么做?
你可以使用target_include_directories()
只给使用libA
的target添加相应的头文件搜索路径
https://cmake.org/cmake/help/latest/command/target_include_directories.html#command:target_include_directories