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

时间:2013-11-24 16:47:52

标签: c gcc cmake gcc-warning

我是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声明。

谢谢!

1 个答案:

答案 0 :(得分:5)

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

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