c – 为什么“cc1plus:警告:无法识别的命令行选项”用于“否 – ”选项仅在有另一个警告时由g标记?

c – 为什么“cc1plus:警告:无法识别的命令行选项”用于“否 – ”选项仅在有另一个警告时由g标记?,第1张

概述> cat warning.cpp#pragma foobar> cat no_warning.cpp#pragma message "foobar"> g++ -Wall -Wno-foobar -c warning.cppwarning.cpp:1:0: warning: ignoring #pragma foobar [-Wunknown-pragmas]cc1plus: wa
> cat warning.cpp#pragma foobar> cat no_warning.cpp#pragma message "foobar"> g++ -Wall -Wno-foobar -c warning.cppwarning.cpp:1:0: warning: ignoring #pragma foobar  [-WunkNown-pragmas]cc1plus: warning: unrecognized command line option "-Wno-foobar" [enabled by default]> g++ -Wall -Wno-foobar -c no_warning.cppno_warning.cpp:1:17: note: #pragma message: foobar
解决方法 这是设计,解释 here:
When an unrecognized warning option is requested (e.g.,-WunkNown-warning),GCC emits a diagnostic stating that the option is not recognized.However,if the -Wno- form is used,the behavior is slightly different:no diagnostic is produced for -Wno-unkNown-warning unless other diagnosticsare being produced.This allows the use of new -Wno- options with old compilers,but if somethinggoes wrong,the compiler warns that an unrecognized option is present.

换句话说,假设你有foo.cc,并且GCC-4.9警告某些东西(让我们称之为foobar),但你相信你使用foobar是安全的.

由于您希望将所有警告视为错误(使用-Werror),因此请尽职地将-Wno-foobar添加到Makefile中.

现在有人试图用GCC-4.8构建你的代码.如上所述,这不会产生任何警告,他会成功.

如果这确实产生了警告,那么你将无法使用foobar构造并拥有一个与GCC-4.8和GCC-4.9一起使用的Makefile.

总结

以上是内存溢出为你收集整理的c – 为什么“cc1plus:警告:无法识别的命令行选项”用于“否 – ”选项仅在有另一个警告时由g标记?全部内容,希望文章能够帮你解决c – 为什么“cc1plus:警告:无法识别的命令行选项”用于“否 – ”选项仅在有另一个警告时由g标记?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1244718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存