Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用";包含在文件中的“文件”;g++;消息 我正在使用G++做C++项目。我正在使用#pragma消息打印各种诊断消息(正在编译类的哪些部分等)。起初它是有用的,但随着包含链的增长,它失去了控制_C++_C++11_Pragma_G++4.8 - Fatal编程技术网

禁用";包含在文件中的“文件”;g++;消息 我正在使用G++做C++项目。我正在使用#pragma消息打印各种诊断消息(正在编译类的哪些部分等)。起初它是有用的,但随着包含链的增长,它失去了控制

禁用";包含在文件中的“文件”;g++;消息 我正在使用G++做C++项目。我正在使用#pragma消息打印各种诊断消息(正在编译类的哪些部分等)。起初它是有用的,但随着包含链的增长,它失去了控制,c++,c++11,pragma,g++4.8,C++,C++11,Pragma,G++4.8,当我编译我的任何对象时,我保证得到至少3条类似于以下内容的消息: In file included from cgCore.h:10:0 from cgutCore.h:3 from cgutSrvWrapper.h:11 from cgutSrv1.h:5 from cgutSrv1.cpp:9 XnInterface.h:14:17: note: #prag

当我编译我的任何对象时,我保证得到至少3条类似于以下内容的消息:

In file included from cgCore.h:10:0
                 from cgutCore.h:3
                 from cgutSrvWrapper.h:11
                 from cgutSrv1.h:5
                 from cgutSrv1.cpp:9
XnInterface.h:14:17: note: #pragma message: Compiling XnInterface for SERVER use
 #pragma message "Compiling XnInterface for SERVER use"
                 ^
当我做一个完整的构建时,我会得到数百个。我想打印实际的消息(XnInterface.h:14…),但不想打印其余的消息。我真的不在乎它是从哪里包括在这个上下文中,它使实际的警告很难发现

我发现我可以使用
-fno diagnostics show carat
禁用最后两行,但找不到不打印包含链的选项

我不想将它们作为系统标题包含在
-I/include
中,因为这样会删除整个消息。是否可以仅禁用包含链?g++手册页不是为深夜阅读而设计的,所以我承认我可能错过了一些东西

谷歌没有帮助。我想不出一个甚至可以返回相关结果的搜索查询

XnInterface.h,fwiw中的相关代码:

#ifndef __CGUT_SERVER
...non-server code...
#else
#pragma message "Compiling XnInterface for SERVER use"
...munged server code...
#endif
而且,在一个相关的注释中,上帝禁止我扰乱Boost。它吐得太厉害了,我不得不少吐一点。大部分是“在文件中包括从…”


非常感谢您的任何帮助

参考GCC源代码,
diagnostic.c
,function
diagnostic\u report\u current\u module
,第528行,打印有问题文件的名称后,循环无条件发生。你可以修改它并重建GCC,否则你就倒霉了。

我最终为GCC编写了一个补丁,但我的服务器在编译过程中自动启动了,所以我不知道它是否有效。@Chris听起来像是一个史诗般的任务。