OpenSUSE 11.2下Qt 4.5.3升级到4.7.3的完整解决方案


阅读 2 次

问题现象描述

在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,需要手动指定新版本:

  1. 打开Qt Creator
  2. 进入"工具"→"选项"→"构建和运行"
  3. 在"Qt版本"标签页添加新路径
  4. 在"工具链"中关联对应版本

常见问题排查

问题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