错误:unrecognized command line option “-std=c++11”,解决ubuntu不支持c++11的问题

本文介绍了解决g++gcc版本过低导致的编译错误的方法,通过添加源和更新包列表,安装了4.8版本的gcc和g++,并详细展示了如何切换版本以确保使用的是最新安装的4.8版本。

出现这个编译错误的原因在g++ gcc 版本不够高。

添加源

$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test

$ sudo apt-get update

安装4.8版本

$ sudo apt-get install gcc-4.8 g++-4.8

查看本地安装版本

$ ls -lh /usr/bin/g++*

这里应该会看到本机装了4.6(自带)和4.8两个版本。

切换版本

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

$ sudo update-alternatives --config gcc

这里选择4.8版本的序号

再次查看g++版本

$ g++ --version

确认当前版本为4.8,问题解决!

转自: http://my.oschina.net/chenyoca/blog/226455

<think> 嗯,用户遇到了C++编译器报错问题,需要解决"unrecognized command line option"错误。从用户描述看,错误信息包含"-std=c++14"和"-00"两个无法识别的选项,且提到了CP Editor编辑器环境。 用户提供的引用材料很有价值:引用[2]明确指出gcc 9.4版本不支持-std=c++20但支持-std=c++2a,说明编译器版本对C++标准的支持是关键;引用[3][4]展示了CentOS和Ubuntu下升级GCC的具体操作;引用[5]则提到conda环境的解决方案。这些都需要整合到回答中。 注意到用户的错误信息比较特殊:一是"-std=c++14"中间有异常空格(c++14写成c++14),二是"-00"选项(可能是-O0优化级别被误写)。这提示除了编译器版本问题,还可能涉及编辑器配置错误。 准备分三步解决:首先确认编译器版本是否过旧(通过g++ -v命令),然后检查CP Editor的编译选项配置(特别是-std-O0的书写规范),最后提供升级方案(包括Linux环境下通过devtoolset或源码编译升级,以及conda环境方案)。需要特别强调检查"-std=c++14"的空格问题,这可能是直接触发错误的原因。 用户似乎不熟悉开发环境配置,操作指南要具体:比如检查配置文件的路径(~/.config/cpeditor/config.ini),升级编译器时区分apt/yum包管理等。安全提示也很重要,例如备份原编译器、谨慎使用ln命令等。 相关问题设计覆盖了常见延伸需求:编译器兼容性检测、不同系统环境下的升级操作、编辑器配置优化等,帮助用户预防同类问题。 </think> 根据引用内容和错误信息分析,您遇到的 `unrecognized command line option` 错误主要有两个原因及解决方案: --- ### **错误原因分析** 1. **编译器版本过低** `-std=c++14` 要求 GCC 5.0+ 版本(引用[3][4])。您的编译器可能低于此版本: ```bash g++ --version # 检查当前版本 ``` 2. **编译选项书写错误** 错误信息中 `-std=c++14` 显示为 `-std=c 14`(多出空格),且 `-O0`(字母O)误写为 `-00`(数字0),需检查编辑器配置。 --- ### **解决方案** #### 步骤1:修复编译器选项(立即生效) 1. 在 CP Editor 中定位编译配置: - 打开设置 → Compiler → 编译命令 2. **修正错误选项**: - 将 `-std=c 14` 改为 **`-std=c++14`** - 将 `-00` 改为 **`-O0`**(优化等级选项,O后接数字0) > 此操作可解决90%的语法错误(引用[1]) #### 步骤2:升级GCC编译器(根除兼容问题) ```bash # Ubuntu/Debian 系统 sudo apt install gcc-11 g++-11 # 安装GCC 11(支持C++17/20) sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100 # CentOS/RHEL 系统 sudo yum install devtoolset-11 # 安装GCC 11工具集 scl enable devtoolset-11 bash # 激活环境 ``` #### 验证升级结果 ```bash g++ -v # 应显示版本≥5.0 g++ -dM -E -x c++ /dev/null | grep -F __cplusplus # 检查支持的C++标准 ``` #### 备选方案:使用Conda环境(引用[5]) ```bash conda install -c conda-forge gxx=11.2.0 # 安装新版本编译器 ``` --- ### **关键注意事项** 1. **空格问题**:`-std=c++14` 必须无空格 2. **数字0 vs 字母O**:优化选项是 `-O0`(大写字母O+数字0) 3. 升级后需重启CP Editor或终端使新编译器生效 4. 若使用非系统编译器(如Conda),需在CP Editor中指定编译器路径(引用[5]) > 注:若仍报错,请检查CP Editor的 `构建命令` 配置(通常为 `g++ -std=c++14 -O0 $FILE -o $EXECUTABLE`)[^1][^2][^4]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值