【问题标题】:Can gcc be configured to not print out a full path in warning/error messages?可以将 gcc 配置为不在警告/错误消息中打印完整路径吗?
【发布时间】:2009-08-15 17:27:35
【问题描述】:

当 gcc 打印出警告或错误时,它会显示包含错误的文件的完整路径。是否有一个标志可以将输出缩短为文件名?

【问题讨论】:

    标签: gcc


    【解决方案1】:

    这取决于你如何调用 gcc:

    /tmp/c$ gcc -Wall bad.c bad.c:1:警告:返回类型默认为“int” bad.c:在函数“main”中: bad.c:1:警告:控制到达非无效函数的结尾

    /tmp/c$ gcc -Wall /tmp/c/bad.c /tmp/c/bad.c:1:警告:返回类型默认为“int” /tmp/c/bad.c:在函数“main”中: /tmp/c/bad.c:1:警告:控制到达非无效函数的结尾

    /tmp/c$ gcc -Wall ../../tmp/c/bad.c ../../tmp/c/bad.c:1:警告:返回类型默认为“int” ../../tmp/c/bad.c:在函数'main'中: ../../tmp/c/bad.c:1:警告:控制到达非无效函数的结尾

    bad.c 的内容只是

    main() { }
    

    如果有人在乎的话。

    【讨论】:

    • 没错,这行得通,但是如果已经设置了一个复杂的构建系统呢?如果我可以在 CFLAGS 中添加一些内容来清除输出,那就太好了。
    【解决方案2】:

    有时我会为此使用 sed 脚本(例如,当使用 cmake 时,它​​总是使用完整路径)。这对于清理日志的其他部分(例如 f.e.)也很有用。 C++ 中的模板名称。

    【讨论】:

      【解决方案3】:

      有关涉及您的 Makefile 的解决方案,请参阅此电子邮件主题:

      http://gcc.gnu.org/ml/gcc-help/2008-03/msg00084.html

      【讨论】:

        猜你喜欢
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 2014-04-06
        • 1970-01-01
        • 2020-09-26
        • 2015-06-21
        • 1970-01-01
        • 2022-01-11
        相关资源
        最近更新 更多