-std=c++11 在 gcc 4.8.1 上无法识别

-std=c++11 在 gcc 4.8.1 上无法识别

我刚刚关注了问题是将我的 Ubuntu 12.04 上的 gcc 版本更新到 4.8.1,我以为它会支持 C++11。然而似乎并不支持。

当我尝试使用-std=c++11标志编译某些内容时,出现此错误:

cc1plus: error: unrecognized command line option ‘-std=c++11’

我的 gcc 版本是这样的:

gcc version 4.8.1 (Ubuntu 4.8.1-2ubuntu1~12.04)

我的 g++ 版本是这样的:

$ g++ -v
  ....
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

我可能错过了什么?

编辑:我错过了我需要更新 g++

只需对上述答案中提供的代码进行少量修改即可轻松实现。只需更改gccg++

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install g++-4.8
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50

答案1

您已升级 C 编译器,但尚未升级 C++ 编译器。它们是单独的二进制包。您还需要安装该g++-4.8包才能获得新版本的 C++ 编译器。

相关内容