【问题标题】:How to set includes to be relative to the relativity of the source file from the root path?如何设置包含相对于根路径的源文件的相对性?
【发布时间】:2026-01-12 19:30:02
【问题描述】:

对不起,如果我的问题措辞有点混乱:

如何将包含设置为相对于根路径的源文件的相对性?

我正在尝试编译一个 C++ 项目(不是我自己的),并且有两个文件夹:srcinclude

.cpp源文件位于src,头文件位于include

我想编译所有的源文件。

但是,源文件中的#includes 是相对的,就好像include 文件夹树和src 文件夹树合并了一样。

例如src/foo/bar/baz.cpp 可能有#include "baz.h"。在这种情况下,应该在 include/foo/bar/baz.h 而不是 include/baz.h 中搜索头文件。

如何使用 GCC 实现这一目标?我确信互联网上已经存在类似的问题,我只是不知道如何很好地表达我的问题。

这是我迄今为止尝试过的错误:

gcc src/**/*.cpp -I include

注意:我仍然需要能够在命令末尾附加额外的 -I <folder> 才能以正常方式包含文件。

【问题讨论】:

    标签: c++ gcc include header-files include-path


    【解决方案1】:

    没有神奇的编译器选项可以做你想做的事。

    解决方案 1:将 #include 指令更改为相对于包含目录。

    解决方案 2:不要使用单独的目录并将标题移动到 src 目录中。

    【讨论】:

      最近更新 更多