包括来自并行目录结构的文件

including files from a parallel directory structure

本文关键字:结构 文件 并行 包括      更新时间:2023-10-16

不太重复: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/相应子目录中查找?

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

include_directories(${CMAKE_SOURCE_DIR}/include/foodir)

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