ubuntu:gcc: error: unrecognized command line option ‘-std=c++14’

当尝试安装自定义算子时遇到gcc错误'error: unrecognized command line option ‘-std=c++14’',可以通过升级gcc和g++到更高版本来解决。首先,从指定源下载gcc5.2.0源码,解压并进入目录,然后下载依赖,创建build文件夹,配置并编译安装,最后更新软链接为新版本。完成升级后,使用gcc和g++命令检查版本确认升级成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装一些自定义算子时,出现gcc: error: unrecognized command line option ‘-std=c++14’

解决方案

升级gcc版本和g++版本

cd /usr/local/src
# 下载gcc5.2.0源码
wget http://ftp.gnu.org/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2
tar -jxvf gcc-5.2.0.tar.bz2
# 进入gcc目录安装
cd gcc-5.2.0
# 下载某些依赖包
./contrib/download_prerequisites
# 创建bulid文件夹
mkdir build
cd build
../configure --prefix=/usr/local/gcc --enable-languages=c,c++ --disable-multilib
# 编译安装,此过程耗时较长
make && make install
# 修改软连接
mv /usr/bin/gcc /usr/bin/gcc_bak
ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++_bak
ln -s /usr/local/gcc/bin/g++ /usr/bin/g++
# 查看升级后版本
gcc --verson
g++ --version

引用gcc: error: unrecognized command line option ‘-std=c++14’ 问题解决_Mr_不想起床的博客-CSDN博客

<think>好的,我现在需要解决用户遇到的Qt编译错误问题。用户在使用Qt时遇到了g++的报错,提示unrecognized command line option '-std=C++20'; did you mean '-std=c++03'?”。首先,我需要分析这个错误的原因,然后给出解决方案。 首先,错误信息明确指出g++无法识别'-std=C++20'这个选项,并建议可能是指'-std=c++03'。这说明编译器版本可能较旧,不支持C++20标准。需要确认用户使用的g++版本是否足够新以支持C++20。 接下来,我应该分步骤思考解决方案: 1. 检查编译器版本:用户需要查看当前使用的g++版本。C++20的支持从g++ 8开始部分支持,但完全支持可能需要更高版本,比如g++ 11或更高。用户可以通过运行g++ --version来查看版本。 2. 升级编译器:如果当前版本过低,用户需要升级g++。在Windows下,如果使用MinGW,可能需要下载更新的MinGW版本,或者切换到MSYS2中的Mingw-w64,这些通常提供较新的编译器版本。 3. 修改Qt项目配置:用户可能在.pro文件中设置了-std=C++20,或者在Qt Creator的构建设置中选择了C++20。需要检查并修改为正确的标准,如-std=c++20(注意大小写),或者根据编译器支持情况选择较低的版本,如C++17或C++14。 4. 检查Qt Creator的编译器套件:确保Qt Creator使用的是更新后的编译器路径。有时即使安装了新编译器,Qt可能仍然指向旧版本,需要手动配置工具链。 5. 其他注意事项:比如检查环境变量PATH是否包含新编译器的路径,避免多个编译器冲突;确认项目中没有其他地方的错误配置导致标准选项错误。 可能还需要提醒用户,Windows下不同编译器(如MSVC和MinGW)的支持情况不同,如果使用MSVC,需要确认其版本是否支持C++20,但这里报错的是g++,所以应聚焦在MinGW的更新上。 总结,解决方案应包括检查编译器版本,升级编译器,调整项目配置中的C++标准,并确保Qt使用正确的编译器路径。同时,注意选项的大小写问题,因为-std=C++20中的大写C可能不被识别,应使用小写-std=c++20。</think>在Windows环境下使用Qt遇到`g++: error: unrecognized command line option '-std=C++20'`错误时,可按以下步骤排查解决: --- ### 错误原因 编译器版本过低导致: - `-std=C++20`选项中的大写`C`不符合GCC规范(应小写`c++20`) - 你的GCC/g++版本不支持C++20标准(GCC 8+开始部分支持,完整支持需GCC 11+) --- ### 解决方案 #### 步骤1:检查GCC版本 ```bash g++ --version ``` - 若输出版本低于 **8.0**(如g++ 7.3),需升级编译器 - 若版本为8.0+但报错,检查`-std=c++20`是否拼写正确(小写`c`) --- #### 步骤2:升级MinGW编译器(二选一) ##### 方案A:通过MSYS2安装新版MinGW-w64 1. 下载安装[MSYS2](https://www.msys2.org/) 2. 更新包数据库: ```bash pacman -Syu ``` 3. 安装MinGW-w64 GCC 12+: ```bash pacman -S mingw-w64-ucrt-x86_64-gcc ``` 4. 验证版本: ```bash g++ --version ``` ##### 方案B:直接下载新版MinGW - 从[MinGW-w64官网](https://www.mingw-w64.org/)下载最新版本 - 解压后配置环境变量`PATH`指向新编译器路径 --- #### 步骤3:配置Qt使用新编译器 1. 打开Qt Creator → **工具** → **选项** → **Kits** 2. 在**编译器**选项卡添加新G++路径(如`C:\msys64\ucrt64\bin\g++.exe`) 3. 在**Kits**选项卡中选择新编译器套件 --- #### 步骤4:修改项目配置 在`.pro`文件中**强制指定C++标准**: ```qmake # 使用小写c++20(推荐支持C++20的编译器) QMAKE_CXXFLAGS += -std=c++20 # 或降级到编译器支持的版本(如C++17) # QMAKE_CXXFLAGS += -std=c++17 ``` --- ### 补充建议 1. **检查选项拼写**:确保使用`-std=c++20`(全小写) 2. **优先使用MSVC**:如果安装了Visual Studio,可在Qt中选择MSVC编译器(通常对C++20支持更早) 3. **清理项目**:升级后执行`构建 → 重新构建项目` --- ### 验证是否成功 ```cpp #include <version> #include <iostream> int main() { #if __cplusplus >= 202002L std::cout << "C++20支持已启用\n"; #else std::cout << "当前标准: " << __cplusplus << "\n"; #endif } ``` 编译运行后若输出`C++20支持已启用`,则问题解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值