gcc 编译器错误消息路径取消父级

Posted

技术标签:

【中文标题】gcc 编译器错误消息路径取消父级【英文标题】:gcc compiler error message path cancelling parent 【发布时间】:2015-12-17 07:00:24 【问题描述】:

我有包含 C++ 代码的文件和文件夹的层次结构。 它们通常相互包含,例如:

#include "../../Foder1/Lib4/file12.hpp"

当我编译代码时,如果出现错误,我会看到如下消息:

Foder2/Lib7/../../Foder1/Lib4/file12.hpp:71:4: error <something>

虽然我更喜欢看到 .. 代表父目录在 gcc 错误消息中被取消:

Foder1/Lib4/file12.hpp:71:4: error <something>

拨打gcc的任何选项?

【问题讨论】:

您的 Makefile 在哪个文件夹中? @Glapa makefile 位于项目的根文件夹中。该路径是相对路径 【参考方案1】:

如果您将 -I [Folder...'s base dir] 添加到您的 gcc 调用中,您可以包含 #include "Foder1/Lib4/file12.hpp" 的文件,然后消息应该被更好地格式化。

【讨论】:

建议将&lt;&gt; 更改为""。详细了解原因:***.com/questions/21593/… 感谢您的提示!已编辑。 但是...我们知道这些文件不在同一个目录中,那么"" 的意义何在? &lt;&gt; 告诉我们该文件包含在“外部路径定义”中。 你有我。如果没有相对路径,剩下的唯一原因是风格:将外部库头文件和项目头文件分开。这是一个容易争论和失败的论点。

以上是关于gcc 编译器错误消息路径取消父级的主要内容,如果未能解决你的问题,请参考以下文章

gcc 错误消息存储库

每天整理点Linux--gcc常用选项

GCC“内部编译器错误:重新输入错误报告例程”(包括完整代码)

GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名

禁用所有 gcc 警告

使用 gcc 编译错误 - strprintf("%"PRId64, n)