问题现象描述
在OpenSUSE 11.2系统中,虽然已经通过源码编译安装了Qt 4.7.3版本(系统原装版本为4.5.3),但执行qmake -v
命令后仍然显示旧版本号。
环境检查步骤
首先确认Qt安装路径是否正确:
# 查找qmake路径
which qmake
# 典型输出可能是/usr/bin/qmake
# 查看链接关系
ls -l /usr/bin/qmake
# 可能会显示指向/usr/bin/qmake-qt4这样的符号链接
根本原因分析
这种情况通常是由于:
- 系统PATH环境变量优先级问题
- 旧版本Qt的符号链接未被更新
- alternatives系统未正确配置
完整解决方案
方法一:手动更新符号链接
# 先备份原有qmake
sudo mv /usr/bin/qmake /usr/bin/qmake.bak
# 创建新链接指向4.7.3版本
sudo ln -s /usr/local/Trolltech/Qt-4.7.3/bin/qmake /usr/bin/qmake
方法二:使用update-alternatives系统
# 注册新版本
sudo update-alternatives --install /usr/bin/qmake qmake /usr/local/Trolltech/Qt-4.7.3/bin/qmake 100
# 切换版本
sudo update-alternatives --config qmake
验证安装结果
执行以下命令确认版本更新成功:
qmake -v
# 应该显示:QMake version 2.01a
# Using Qt version 4.7.3 in /usr/local/Trolltech/Qt-4.7.3/lib
开发环境配置
如果使用Qt Creator,需要手动指定新版本:
- 打开Qt Creator
- 进入"工具"→"选项"→"构建和运行"
- 在"Qt版本"标签页添加新路径
- 在"工具链"中关联对应版本
常见问题排查
问题1:编译时报GL/gl.h找不到
解决方案:安装OpenGL开发包
sudo zypper install Mesa-devel
问题2:运行程序时报库版本冲突
解决方案:设置LD_LIBRARY_PATH环境变量
export LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.7.3/lib:$LD_LIBRARY_PATH