【问题标题】:Is it possible with -Wall but only display warnings in specific files?是否可以使用 -Wall 但仅在特定文件中显示警告?
【发布时间】:2013-09-04 19:20:12
【问题描述】:

我正在使用 GCC 4.8 用 C 语言编写一个项目,我希望看到所有警告(希望消除它们),但问题是我#包括一些旧的、未维护的库,这给了我巨大的警告墙对 -Wall 选项的反应。我无法解决这些问题,我只想忽略它,专注于我实际编写/维护的代码。

我也可以:

gcc -Wall-excluding-OldBlackBox.c -myproject.c ?

【问题讨论】:

  • @AdamBurry 不是主题,那篇文章是关于通过#pragmas 来做的,在这里他要求通过 gcc 参数来做
  • @Zupoman 不幸的是,我认为他想要的标志不存在。
  • @Adam Burry - 通过#pragmas 执行此操作就足够了,但在您链接的线程的答案中,我看不到禁用特定文件(不仅是警告类型)的选项。或者也许我可以在开始时禁用所有警告并在 blackbox.c 文件的末尾重新启用它们?
  • 你真的#include 一个.c 文件在另一个?这几乎不是一个好主意。

标签: c gcc warnings


【解决方案1】:

更新你的makefile,让你有不同的gcc -Wxxx 行用于不同的文件(或文件组)

result.exe : xxx.o yyy.o
   gcc -o result.exe xxx.o yyy.o

xxx.o : xxx.c
   gcc -Wall xxx.c

yyy.o : yyy.c
   gcc -W yyy.c

【讨论】:

  • 好吧,我现在没有 make 文件(有坏习惯的业余 Windows 程序员),但它可能是足够好的理由来制作一个 :)
【解决方案2】:

首先创建单独的目标文件,然后将它们链接为单个可执行文件。

//compilation with warnings        and   compilation without warnings  
gcc -Wall file1.c file2.c -o foo.o && gcc -w file3.c file4.c -o foo1.o 


gcc -o final foo.o foo1.o

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 2018-11-13
    相关资源
    最近更新 更多