最近,我在编写的C 代码中遇到编译错误,因此有人问我是否正在使用C 11编译器,但老实说,我不知道如何检查我的编译器版本!所以任何想法如何解决这个??
顺便说一句,我正在使用代码块作为IDE,其中包括MinGW的GCC编译器和GDB调试器。另外,如果我要在Linux上编译我的c ++代码,应该运行什么命令来知道我的编译器版本?
这可能是一个棘手的问题。C 11是指标准的一个版本,而不是编译器的一个版本。通常,至少对于最新版本,不同的编译器以及任何给定编译器的不同版本都会实现标准版本的混合。或多或少,因为C 11的任何实现都是相当新的,因此可能相当多。
大多数编译器都有输出版本的选项。许多人会以详细模式系统地输出它。对于g ,请尝试g++ --version。g 的最新版本确实支持C 11,但是您必须使用-std=c++0x(而不是通常的-std=c++03或 -std=c++98)激活它。顾名思义,(c++0x而不是c++11)表示,它 并不是 真正的C 11;它是某些主要功能的(大多数?)实现,是基于各种工作文件的初步版本,而不是最终标准。
g++ --version
-std=c++0x
-std=c++03
-std=c++98
c++0x
c++11
(FWIW:我认为没有任何编译器可以完全实现C ++ 11的全部功能,但是我很乐意被证明是错误的。)