我刚刚关注了这问题是将我的 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++
只需对上述答案中提供的代码进行少量修改即可轻松实现。只需更改gcc
为g++
。
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++ 编译器。