1.4 Qt在Linux下安装 Qt在Linux系统里的安装要稍微复杂一些,因为Linux发行版众多,所以安装过程有些差异。 由于Linux系统都可以自行安装 GNU 工具集(对应Windows系统里的MinGW), 所以Qt在Linux系统里的安装包没有自带g++等编译生成工具以及OpenGL开发库, 需要根据不同的Linux发行版提前装好GNU 工具集和OpenGL开发库。Qt官方网站有介绍在Linux下安装的页面: 1.4.1 安装前准备工作 对于Linux系统,Qt官方的安装包总是假定C++编译器compiler、调试器debugger、生成器make以及其他开发工具 由该操作系统自己提供,另外构建Qt图形界面程序还需要OpenGL库文件(扩展名为 .a 和 .so)和头文件(扩展名为 .h), OpenGL的开发库也是需要操作系统自己提供。所以在安装Qt官方run文件之前,必须先安装好Linux系统自己软件源里面 的GNU开发工具集和OpenGL开发库。下面针对三类 Linux 操作系统安装相应的GNU开发工具集和OpenGL开发库, 请注意安装软件都需要root权限,并且要联网安装。 (1)如果是 Debian/Ubuntu/Deepin (apt-get) 系列操作系统,执行命令: sudo apt-get install build-essential libgl1-mesa-dev (2)如果是 Fedora/RHEL/CentOS (yum) 系列操作系统,执行命令: sudo yum groupinstall "C Development Tools and Libraries" sudo yum install mesa-libGL-devel (3)如果是 openSUSE (zypper) 系列操作系统,执行命令: sudo zypper install -t pattern devel_basis 根据不同的操作系统执行相应的命令,完成安装后就可以继续下面的安装了。 读者请注意一个操作系统版本的问题:因为Linux社区发行版非常活跃,版本更新快(尤其是Ubuntu),经常是半年到一年更新一次, 所以上述命令通常只能在比较新的Linux版本上才能执行成功,旧的Linux版本很可能是Linux发行版官方都不支持了, 因而会导致上面命令执行失败。一般对于活跃的Linux社区,其单个系统版本的生存期是一年到两年左右,安装Qt开发环境之前最好更新到2014年之后发布的Linux版本。 1.4.2 安装Qt开发环境 Qt安装包下载方式之前说过了,32位Linux安装包为 qt-opensource-linux-x86-5.4.0.run, 64位Linux安装包为 qt-opensource-linux-x64-5.4.0.run。下载的run文件不一定具有可执行权限, 可以执行如下命令开启执行权限(以64位安装包为例): chmod +x /文件夹路径/qt-opensource-linux-x64-5.4.0.run
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
*中文输入法问题* 1.4.3 Qt开发环境目录结构 Qt 在 Linux 系统里安装的东西比在 Windows 里的要少一些,因为 Linux 系统自带编译生成工具, 在前面 1.4.1 安装的就是编译生成工具和 Qt 依赖的库文件。在 Linux 系统里 Qt 安装的开发环境大致分为两部分:
如果安装了 Qt 类库的源代码,则位于 ~/Qt5.4.0/5.4/Src 目录里面(波浪号 ~ 是指当前用户主文件夹,如用户 suse132 的主文件夹为 /home/suse132)。我们将 Linux 系统里 Qt 安装根的目录树绘制如下: ![]() 安装目录里的结构和 Windows 系统里差不多,Docs 里的是帮助文档,需要 Qt Assistant 来查阅,Examples 是例子代码,最后的 MaintenanceTool 是管理工具,如果是用离线包安装的,那只能用它删除 Qt 开发环境,如果是在线安装方式,还可以用它管理 Qt 开发环境的组件和升级组件。 ![]() 图上面列出的比较有限,主要是让读者熟悉一下 Qt 开发环境,下一小节我们自己编写一个 Qt 命令行脚本。 1.4.4 Qt开发环境脚本 如果使用集成开发环境 Qt Creator 开发程序,是不需要关心环境变量之类的设置的, 该工具自己会去寻找编译器g++、调试器gdb、生成器make以及系统里的开发库, 所以建议新手使用 Qt Creator ,这样比较无恼。 当然,也有不怕一万,就怕万一的。万一需要在命令行里编译 Qt 程序怎么办? 一般 Linux 系统里的编译生成工具和开发库都是不需要配置的,都是放在固定的目录里, 比如64位库文件位于 /usr/lib64/ 。这里讲一些特殊情况, 比如 Linux 系统目录里面有一份 Qt 4.8.6 的开发库, 而我们又在用户目录里面装了新的 Qt 5.4.0 ,这时候打开操作系统命令行,执行命令: qmake -v
![]()
cd ~/Qt5.4.0/5.4/gcc_64/bin/ ./qmake -v
![]()
当然是自己编个脚本来配置了。我们在用户主文件夹新建一个文件 qt5env.sh , 用编辑器打开编辑内容,如果是 KDE 桌面环境,该文件内容设置为: export QTDIR=~/Qt5.4.0/5.4/gcc_64 export PATH=~/Qt5.4.0/5.4/gcc_64/bin:$PATH export LD_LIBRARY_PATH=~/Qt5.4.0/5.4/gcc_64/lib:$LD_LIBRARY_PATH cd ~ konsole 如果是 GNOME 桌面环境,该文件内容设置为: export QTDIR=~/Qt5.4.0/5.4/gcc_64 export PATH=~/Qt5.4.0/5.4/gcc_64/bin:$PATH export LD_LIBRARY_PATH=~/Qt5.4.0/5.4/gcc_64/lib:$LD_LIBRARY_PATH cd ~ gnome-terminal 两种桌面环境的命令行工具名字不一样,KDE 桌面里用 konsole 启动命令行, GNOME 桌面里用 gnome-terminal 启动命令行。上面 qt5env.sh 文件里内容比较简单, 就是设置环境变量 QTDIR 指示 Qt 库的位置,然后添加 Qt 库的 bin 目录到 PATH 变量里,并且添加 Qt 库的 lib 目录到 LD_LIBRARY_PATH 变量里。 由于我们把 QTDIR/bin 目录放在了旧的 $PATH 变量的前面,所以进入该命令行后, 会优先使用我们自己安装的 5.4.0 版本 Qt 库工具集。LD_LIBRARY_PATH 变量是类似地设置,LD_LIBRARY_PATH 是指定动态链接库的路径,也是优先使用我们安装的 Qt 5.4.0 版本动态链接库。 chmod +x ~/qt5env.sh
qmake -v assistant designer linguist 还有一个需要注意的问题,上面安装和配置都是同一个用户,比如 suse132, 如果同一主机上其他用户想用该版本 Qt 库, 需要将 QTDIR 、PATH、LD_LIBRARY_PATH 三行里面的波浪线 ~ 替换为安装该 Qt 库的用户主文件夹,比如 /home/suse132 , 使用绝对路径方式指明 Qt 库的路径( cd ~ 不用变)。 1.4.5 其他安装方式 上面介绍的是安装Qt官方发布的开发环境,还有其他的安装方式。 Linux一般都是自带Qt动态库的,目前使用Qt4系列版本的居多。 Qt5还是比较新的,基于Qt5的KDE5桌面正在开发过程中, KDE5可能不太稳定,目前还没有作为默认Linux桌面使用。 对于不同的Linux发行版,其原生使用的安装包不一样,有rpm系列的, 也有deb系列的,还有其他格式安装包的。因为Qt是开源软件, 大家都可以按照GPL开源协议自己编译发布Qt运行库和开发环境, 所以Linux发行版社区通常会自行编译Qt库和开发工具的源代码, 生成Qt运行库和开发工具的原生安装包(rpm、deb等), 这样用户就可以使用该Linux发行版自家打包的Qt开发环境了。 安装Linux发行版自家打包的Qt开发环境一般都很简单,联网之后,一两句命令就可以搞定,而且rpm或deb等安装包会自动配置好开发环境,不需要其他操 作,即装即用。 比如在openSUSE Linux里面只需要以root用户执行如下两句命令: zypper in -t pattern devel_qt5 zypper in qt-creator libQt5Sql5-mysql libQt5Sql5-sqlite libQt5Sql5-unixODBC libqt5-qtscript-devel libQt5WebKit5-devel libqt5-qtimageformats-devel libqt5-qtmultimedia-devel libqt5-qtquick1-devel libqt5-qtwebsockets-devel
最后补充一个在Mac OS X系统里安装Qt开发环境的链接: |
|