为什么qmake的查询路径与实际关联的Qt路径不一致?
qmake查询路径差异原因及Qt版本切换方法
你执行的两条命令作用维度不同,不存在返回结果异常的问题,具体说明如下:
命令执行结果
ld@ld:/$ which qmake /usr/bin/qmake ld@ld:/$ qmake -v QMake version 3.1 Using Qt version 5.9.5 in /usr/lib/x86_64-linux-gnu
结果差异说明
which qmake:该命令会扫描系统PATH环境变量记录的所有目录,返回第一个匹配到的qmake可执行文件的存放位置。你这里返回的/usr/bin/qmake是系统软件源安装Qt时默认创建的qmake软链接的存放路径。qmake -v:输出中的Qt路径是当前调用的qmake可执行文件编译时内置绑定的Qt库的实际安装路径,该路径是对应版本Qt的核心库、插件、配置文件的存放目录,和qmake可执行文件本身的存放路径不属于同一规则,不需要保持一致。
修改默认Qt版本的方法
如果你需要切换到其他版本的Qt,可以选择以下任意一种方式操作:
- 临时切换当前终端的Qt版本:将目标Qt版本的bin目录添加到
PATH最前面,示例如下(将路径替换为你自己的Qt bin目录路径即可):
执行后再次运行export PATH=/home/your_custom_qt_path/5.15.2/gcc_64/bin:$PATHqmake -v即可确认版本切换成功。 - 永久切换当前用户的默认Qt版本:将上面的export命令写入当前用户的shell配置文件末尾,bash用户写入
~/.bashrc,zsh用户写入~/.zshrc,保存后执行source ~/.bashrc(对应你使用的配置文件)即可永久生效。 - 系统全局多版本管理:如果设备上存在多个Qt版本需要频繁切换,可以使用
update-alternatives工具配置不同qmake版本的优先级,实现一键切换全局默认Qt版本。
内容的提问来源于stack exchange,提问作者Fengxi Xie
相关产品推荐
相关产品推荐

