如何禁用gcc警告“cc1:warning:命令行选项’-std = c ++ 11’对C ++ / ObjC ++有效,但对C无效”

我是cmake和gcc的新手。 我在公司的新角色中的第一个任务是清除我的linux编译中的大部分错误,现在我看到的唯一警告是

cc1: warning: command line option '-std=c++11' is valid for C++/ObjC++ but not for C [enabled by default]

我希望枯萎抑制警告或解决cmake文件中的问题。 不幸的是,我仍然没有找到适合这里的正确-Wno-xxx语句。

谢谢!

可以使用-Wno-xxx选项使代码问题警告静音,因为有时您无法控制源代码。 但是警告告诉您命令行选项不正确无法使用另一个命令行选项进行静音 – 如果您可以影响编译器调用,那么为什么不删除不正确的选项呢?

此特定警告告诉您在编译C代码时无法将标准设置为C ++ 11。 要摆脱它,找到构建配置中定义-std=c++11位置,并确保它仅应用于C ++编译,而不是C。例如,将其从CFLAGS移动到CXXFLAGS或cmake的相当于。