gcc - 在 #include 指令"c,抑制GCC警告"附加标记末尾

  显示原文与译文双语对照的内容

我正在编写一个用C 编译和运行在HP不持续机器上的程序。 但是,我想在运行Linux的工作站上进行主要开发。 HP不间断c 编译器需要非标准 #include 指令,如下所示:


#include <stdio.h> nolist



对于每个 #include 指令,工作站的GCC都在抱怨:


S88USF.c:139:21: warning: extra tokens at end of #include directive



如何取消这里特定警告?

注意:这样的问题已经被问到,正确的答案是沿着"不要让gcc在第一次出现抱怨的理由"的行。 但是,在这个场景中,我明确希望 #include 指令与它们完全一样。

我知道我在做什么,我只是不知道如何通知 gcc 。

时间: 原作者:

包含在包含中的Macroexpansion可能有帮助。

GCC将接受以下命令:


#define nolist


#include <stdlib.h> nolist


/* maybe #undef nolist here */



原作者:

一种方法是定义包含以下preproccesor宏的标头:


//hp_workaround.h


#ifdef HP_


#define HP_INCLUDE_DIRECTIVE(x) x


#else


#define HP_INCLUDE_DIRECTIVE(x) 


#endif



然后用这个宏保护你的指令


#include"hp_workaround.h"


#include <stdio.h> HP_INCLUDE_DIRECTIVE(nolist)



原作者:
...