如何在ubuntu上将gcc编译器改为c++11
how to change gcc compiler to c++11 on ubuntu
我使用ubuntu 12.04,默认gcc为4.6.3。它不接受c++11命令,并向我输出该命令与c++98不兼容。我在网上查了一下,看到有人建议不要更改操作系统上的默认编译器,因为它变得不稳定。有人能提出一个修复方法或安全的方式下载一个符合c++11的gcc编译器吗。
正如其他人所建议的,您需要输入std命令行选项。让我们为您简化
- 按Ctrl+Alt+T
sudo gedit ~/.bashrc
输入以下行作为最后一行
alias g++="g++ --std=c++0x"
- 保存并关闭文件,然后关闭终端
- 现在再次打开终端,通过
g++ filename.cpp
编译您的c++11程序
就是这样。默认情况下,它将按照c++11标准进行编译。
注意:如果按照上述选项编译非c++11程序,则必须使用
g++ --std=c++98 filename.cpp
gcc 4.6.3支持许多c++11特性。但是,它们在默认情况下是禁用的。要启用它们,请使用以下标志:
g++ -std=c++0x ...
此标志还禁用GNU扩展;要使其保持启用状态,请使用-std=gnu++0x
标志。
相关文章:
- 编译器不会使用 -std=c++11 编译智能指针
- 如何检测VS C++编译器是否支持C++11?
- 添加 c++11 编译器后打开 devc++ 时显示的警告
- 为什么编译器在试图初始化具有C 11样式的对象数组时隐含删除构造函数
- 不能在 Solaris 的最新编译器中使用带有新 c+11 标志的 xercesc
- C++11:编译器何时将 {} 视为 std::initializer_list,何时不考虑?
- 为什么 std::move 未定义,尽管编译器使用 -std=c++11 调用
- C++编译器不支持C++11(例如std::unique_ptr)构建OpenWrt
- 我通过编译器C 11收到了UVA在线法官的错误消息.我永远不知道为什么会产生此错误
- QT 5.7将-STD = GNU 11添加到我的编译器标志,Clobbering -Std = C 14
- 由C 11库拒绝的AutoConf被编译器接受,被预处理器拒绝
- C 11 -Chrono文件的编译器标志找不到
- 哪些编译器可以使用 #include <thread> ,或者换句话说,支持也免费的C++ 11?
- 支持DirectX 11库的编译器
- 在代码优化过程中,C++11编译器是否会在可能的情况下将局部变量转换为右值
- 如果使用 Visual C++ 编译器 2013 年 11 月 CTP,是否还需要使用它编译所有依赖项
- 使用C 11的clang分类具有模棱两可的编译器行为
- 使用数组作为地图密钥不使用C 11编译器命令
- Solaris 上的 GNU gcc/g++ 编译器版本,支持 C++11/14
- 用C++14编译器而不是C++11编译时,我的性能会提高吗