2010-06-26 50 views
5

有時我需要使用gcc進行跨平臺工作,有時gcc真的會讓我感到驚訝。例如:在一個主文件哪裏可以找到gcc警告和錯誤的完整列表?

這是非常豐富的警告,但我真的不知道什麼是「主文件」在GCC的術語

的#pragma一次,爲什麼一定要不包含#pragma一次:)。那麼,是否存在涵蓋所有gcc警告和錯誤(主要是警告,錯誤是微不足道的)的任何文檔,並對它們提出了一些評論?

回答

3

'#pragma once'的目標是防止重新包括頭部。如果你在一個源文件中(通常是一個'.c'文件),你將不會讀這兩次(通常我知道一個源文件包含了它自己[我不喜歡它];它雖然不使用或想要#pragma once!)。所以,在這個上下文中的「主文件」是在命令行中列出的,例如,而不是頭文件。

至於這個問題的主題 - 海灣合作委員會手冊似乎沒有一個完整的清單。我不知道是否真的有一個。

+0

但它在標題中。預編譯頭文件。 – grigoryvp 2010-06-26 16:43:46

+0

預編譯頭文件被構建,因此它在構建它時是一個「主文件」 - 並且'#pragma Once'只有在預處理器正在包含時纔有意義,而不是預編譯頭文件。 – hobbs 2010-06-27 03:13:22

+0

@ hobbs:是的。當將頭文件編譯爲預編譯頭文件時,'gcc -c so.h'產生 'so.h:1:9:warning:#pragma once in main file'。我不確定是否有一個很好的方法來抑制這種警告。 – 2010-06-27 03:34:09

相關問題