GCC使用旧版本的C ++

时间:2014-08-09 19:38:54

标签: c++ gcc codeblocks

我正在使用cplusplus网站教程学习C ++。我正在使用以下软件:

  • CentOS 6.4
  • Code :: Blocks 10.05
  • GCC 4.4.7

这些是yum提供的最新版本。当我按照教程进行操作时,我注意到它所说的很多东西对我来说都不起作用。例如,我不能在字符串前加上'u','U','L'等。此外,'nullptr'无法识别,它会产生编译错误。我环顾四周,注意到这些功能是在C ++ 11中添加的。所以我当然认为我必须有一个旧版本的C ++。

根据this page第2.2节中的GCC文档,“默认情况下,如果没有给出C ++语言方言选项,则为-std = gnu ++ 98”。

所以我想我需要指定-std = gnu ++ 0x。我尝试将它放在我的Code :: Blocks编译器参数中,但它没有改变任何东西。相反,我检查了编译器标志“让g ++遵循即将到来的C ++ 0x ISO C ++语言标准[-std = c ++ 0x]”。这也没有改变任何事情。

有人可以告诉我我需要做些什么才能让Code :: Blocks和GCC使用当前版本的C ++?

1 个答案:

答案 0 :(得分:1)

启用C ++ 11功能的规范标志是-std=c++11,但是大多数C ++ 11功能都应该开箱即用,这要归功于GCC扩展。你应该设置标志,因为当你可以采用新标准时依赖扩展是不好的做法。

但是,您的GCC版本有点过时了。您应该从软件包管理器或https://www.gnu.org/software/gcc/index.html

中获取最后一个稳定版本

或者,您可以尝试其他编译器,其中很多都支持C ++ 11。 Clang(++)是一个受欢迎的选择。