我正在工作的项目,其中包含C++文件和C文件。在代码::块中,我在项目构建选项中选择了以下复选框-std=c++11
。
然后得到以下警告。
||warning: command line option ‘-std=c++11’ is valid for C++/ObjC++ but not for C [enabled by default]|
如果我也选中-std=c99
的复选框,
我将得到一个额外的警告如下。
||warning: command line option ‘-std=c99’ is valid for C/ObjC but not for C++ [enabled by default]|
有办法解决这个问题吗?我可以只为-std=c++11
文件设置C++
标志,为C文件设置-std=c99
吗?
发布于 2014-06-08 11:38:47
我认为您有此问题,因为您已经在GCC的-std=c++11
全局编译器设置中启用了选项。我知道您说您在“”中启用了它,但是在全局编译器选项中启用它是导致这种行为的原因。
在C::B中,这个全局选项被描述为:
让g++遵循C++11 ISO C++语言标准
实际上,它将同时应用于g++
和gcc
。
但是,您可能建议在全局编译器选项中设置C++语言标准选项,即使它只适用于g++
。这样,您将永远无法构建任何符合比C++11更早的标准的C++11项目,而不能构建C++11。
您应该返回到全局编译器设置,单击重置默认值和OK out。然后在项目级别设置-std=c++11
编译器选项(以及您希望的任何其他非默认选项):
右键单击工作区树视图中的项目并打开Build options。确保选择的编译器是GNU GCC编译器,并选择编译器设置 -> 编译器标志选项卡。在这里,您将看到编译器选项的复选框列表与在全局编译器设置中看到的相同。启用-std=c++11
选项并确定退出。
现在,项目中的任何.c
文件都将使用gcc
自动编译,没有任何g++
-specific标志,而.cpp
文件将自动使用g++
、-std=c++11
和您选择的任何其他g++
选项进行编译。
发布于 2014-06-05 17:37:57
https://stackoverflow.com/questions/24044865
复制相似问题