问题描述
我的 g++ 版本是 Ubuntu 5.4.0:
g++ --version
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.12)
从手册页,我看到:
c++14
c++1y
The 2014 ISO C++ standard plus amendments. The name c++1y is deprecated.
gnu++14
gnu++1y
GNU dialect of -std=c++14. The name gnu++1y is deprecated.
c++1z
The next revision of the ISO C++ standard,tentatively planned for 2017. Support
is highly experimental,and will almost certainly change in incompatible ways in
future releases.
这是否意味着 c++17 的“-std=c++1z”?我对 c++17 应该使用什么感到困惑,因为有些程序只是直接使用“-std=c++17”并使用这个 g++ 成功编译。
解决方法
这 3 个步骤可以将 Ubuntu gcc/g++ 从默认 5.4.0 更新到 8:
- sudo add-apt-repository ppa:ubuntu-toolchain-r/test
- sudo apt-get 更新
- sudo apt-get install gcc-8 g++-8