Ubuntu 16.04下Qt 5.9.5突发报错求助:无法运行g++等问题
解决Qt 5.9.5突然出现的qmake函数错误与编译器调用问题
根据你描述的情况——之前正常运行的Qt项目突然报错,重装Qt也无效,结合错误信息和环境细节,我来帮你分析并解决问题:
错误原因分析
'take_first' is not a recognized replace function:这个替换函数是Qt 5.10及以上版本的qmake才支持的,而你使用的是Qt 5.9.5,说明当前系统里可能有高版本的qmake(比如通过apt安装的Qt)被优先调用了,导致高版本的配置文件(.prf)被加载,和Qt 5.9.5的qmake不兼容。Cannot run compiler 'g++':虽然终端里g++编译正常,但Qt Creator的环境变量可能没有正确加载,或者Kit配置里的编译器路径有误。
具体解决步骤
1. 检查当前qmake版本与路径
先确认系统默认调用的是不是Qt 5.9.5的qmake:
which qmake qmake -v
如果输出的版本不是Qt 5.9.5,说明高版本的qmake优先级更高。这时需要把Qt 5.9.5的路径放到环境变量最前面:
- 编辑你的
~/.bashrc文件,添加以下内容:export PATH=/Qt/5.9.5/gcc_64/bin:$PATH export LD_LIBRARY_PATH=/Qt/5.9.5/gcc_64/lib:$LD_LIBRARY_PATH - 执行
source ~/.bashrc使配置生效,然后重启Qt Creator。
2. 修正Qt Creator的Kit配置
即使环境变量正确,Qt Creator的Kit配置也可能出错:
- 打开Qt Creator,进入
Tools > Options > Kits - 找到你正在使用的Kit(或者新建一个正确的Kit):
- 确认
Qt Version选择的是Qt 5.9.5 gcc_64 - 检查
Compiler部分的C++编译器,点击Browse选择/usr/bin/g++-7(对应你的GCC 7.3.0)
- 确认
- 点击
Apply后,重启Qt Creator。
3. 清理项目缓存并重新构建
对于已有项目:
- 删除项目目录下的
build-*文件夹(这是Qt自动生成的构建缓存) - 重新打开项目,执行
qmake然后点击构建按钮。
新建项目时,确保创建过程中选择的是刚才配置好的Qt 5.9.5 Kit。
4. 重置qmake配置(如果以上步骤无效)
进入Qt 5.9.5的bin目录,重新生成qmake的配置:
cd /Qt/5.9.5/gcc_64/bin ./qmake -r -spec linux-g++
完成后重启Qt Creator,再尝试打开或新建项目。
额外说明
这次问题的核心是qmake版本不匹配,高版本qmake的配置文件用到了低版本不支持的函数,导致报错。虽然之前重装Qt解决过,但可能是重装后环境变量又被系统或其他软件覆盖了,所以需要彻底固定Qt 5.9.5的路径优先级。
内容的提问来源于stack exchange,提问作者Skyrider
相关产品推荐
相关产品推荐

