在哪里可以找到gcc警告和错误的完整列表?

在哪里可以找到gcc警告和错误的完整列表?,gcc,Gcc,有时我需要使用gcc进行跨平台工作,有时gcc的警告真的让我觉得很有趣。例如: #在主文件中使用pragma一次 这是一个非常有用的警告,但我真的不知道gcc术语中的“主文件”是什么,也不知道为什么它不能包含#pragma one:)。那么,是否存在涵盖所有gcc警告和错误(大多数是警告,错误很小)并对其进行注释的文档?使用“#pragma once”的目的是防止重新包含标题。如果您在源文件(通常是“.c”文件)中有它,您将不会读取两次(通常-我确实知道有一个源文件会重新包含它自己[我不喜欢它]

有时我需要使用gcc进行跨平台工作,有时gcc的警告真的让我觉得很有趣。例如:

#在主文件中使用pragma一次

这是一个非常有用的警告,但我真的不知道gcc术语中的“主文件”是什么,也不知道为什么它不能包含#pragma one:)。那么,是否存在涵盖所有gcc警告和错误(大多数是警告,错误很小)并对其进行注释的文档?

使用“
#pragma once
”的目的是防止重新包含标题。如果您在源文件(通常是“.c”文件)中有它,您将不会读取两次(通常-我确实知道有一个源文件会重新包含它自己[我不喜欢它];但它不使用或不希望使用
#pragma one
)。因此,在此上下文中的“主文件”是在命令行上列出的文件,而不是头文件


至于问题的主题——GCC手册似乎没有一个全面的清单。我不知道是否真的有一个。

但它在标题中。预编译头。预编译头是生成的,因此在生成时它是一个“主文件”——
#pragma once
大概只有在预处理器进行包含时才有意义,而不是在预编译头中。@hobbs:是的
gcc-cso.h
在将头编译为预编译头时,在主文件中生成
so.h:1:9:warning:#pragma一次
。我不确定是否有好的方法来抑制该警告。我不知道它有多具有代表性,但一个包含#pragma one和
static int abc=abc
在Mac Mini上用GCC 4.2.1扩展成2MB的预编译头(so.h.gch)。@hobbs似乎最好的方法还是使用普通的包含保护。我也需要这个,我用GCC填充了一个bug:GCC.gnu.org/bugzilla/show_bug.cgi?id=89808