1

不完全重复:CMake 包含路径

我最初有一个这样的目录结构:

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/

4

2 回答 2

2

要添加include/foodir到编译器搜索路径列表,只需使用include_directories. 假设您的顶级 CMakeLists.txt 位于“root”中:

include_directories(${CMAKE_SOURCE_DIR}/include/foodir)
于 2013-10-26T21:33:30.483 回答
1

你只需要传递一个合适的-I<dir>/foobar参数。例如-Iinclude/foobar可能工作。使用时,make您通常会添加选项CPPFLAGS(当然,实际使用的内容取决于项目的特定规则)。

于 2013-10-26T21:12:33.257 回答