不完全重复:CMake include path
我最初有这样的目录结构:
root
src
foodir
foo.cpp
foo.h
然后将头文件移动到他们自己的并行目录中:
root
src
foodir
foo.cpp
include
foodir
foo.h
问题是..如果foo.cpp过去只使用#include "foo.h"
,它现在必须使用#include "foodir/foo.h"
(使用-Iinclude
编译)。
好的,所以这不是一个真正的“问题”,但最好是保留“foo.h”而不是“foodir / foo.h”(很多文件)。有没有办法,使用cmake,让编译器查看include/
的对应的子目录?
答案 0 :(得分:2)
要将include/foodir
添加到编译器搜索路径列表中,只需使用include_directories
即可。假设您的顶级CMakeLists.txt位于“root”中:
include_directories(${CMAKE_SOURCE_DIR}/include/foodir)
答案 1 :(得分:1)
您只需传递一个合适的-I<dir>/foobar
参数即可。例如,-Iinclude/foobar
可能有效。使用make
时,您通常会将选项添加到CPPFLAGS
(当然使用的是什么,取决于项目特定的规则)。