QT linux安装

2023-05-16

转载地址:http://www.cnblogs.com/tangkaixuan/p/6504102.html

文章来自https://lug.ustc.edu.cn/sites/qtguide/

 

 

1.4 Qt在Linux下安装

Qt在Linux系统里的安装要稍微复杂一些,因为Linux发行版众多,所以安装过程有些差异。 由于Linux系统都可以自行安装 GNU 工具集(对应Windows系统里的MinGW), 所以Qt在Linux系统里的安装包没有自带g++等编译生成工具以及OpenGL开发库, 需要根据不同的Linux发行版提前装好GNU 工具集和OpenGL开发库。Qt官方网站有介绍在Linux下安装的页面:
http://doc.qt.io/qt-5/linux.html 
下面就依样画葫芦,介绍安装Qt开发环境的过程。

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


将“文件夹路径”替换为自己系统里该run文件路径即可。然后可以直接点击运行该run文件,开始安装。 注意以下是以普通用户权限安装的,安装位置是 /home/用户名/Qt5.4.0/ , 如果希望安装到其他的 如 /opt/ 目录,是需要root权限的。

下面示范简单的普通用户安装方式,需要用户家目录 /home 所在磁盘分区至少剩余 2 GB 空间,用于安装Qt开发环境。 所示范的是64位安装包,使用的操作系统是 openSUSE Linux 13.2 (64 位),操作系统本地化语言是简体中文。 直接单击运行qt-opensource-linux-x64-5.4.0.run文件,等待run文件自动解压,然后出现如下安装界面:


点击“下一步”。进入指定“安装文件夹”界面:


默认就会安装到用户主文件夹的Qt5.4.0文件夹里 (上图suse132是当前用户名,/home/suse132/是其主文件夹),不需要修改, 直接点击“下一步”,进入“选择组件”界面:


默认情况是不装Qt源代码的,点击下方的“全选”,选中所有组件就会全部安装。 点击“下一步”,进入“许可协议”界面:


选择“I have read and agree to the terms contained in the license agreements.”这一栏, 同意许可协议,然后点击“下一步”,进入“已做好安装准备”界面:


如果想查看各个组件详情,可以点击“显示详细信息”。 点击“安装”,就会开始正式的安装过程,时间比较长,请耐心等待。 安装完成时会显示 100% :


点击“下一步”,进入“正在完成 Qt 5.4.0 向导”界面:


点击“完成”,会自动打开集成开发环境 Qt Creator。

如果将Linux下安装和Windows下安装对比一下,可以发现Linux下没有关于“开始菜单快捷方式”的设置。 那么下次上哪里找 Qt Creator 呢?
Qt 开发环境安装时会创建一个 Qt Creator 快捷方式文件,然后会呈现在 Linux 的开始菜单里面, 打开“开始菜单”-->“应用程序”-->“开发”-->“集成环境”-->“The IDE of choice for Qt development.”, 可以看到 Qt 的图标,如下图所示:


以后点击该工具就可以进行Qt开发了。该图标对应的快捷方式文件位于:用户主文件夹/.local/share/applications/, (.local是隐藏文件夹,默认看不到,KDE 文件管理器里按快捷键 Ctrl + . ,即 Ctrl 和点号,对于 GNOME 文件管理器里按快捷键 Ctrl + H,就可以切换是否显示隐藏文件) 快捷方式文件名是 DigiaQt-qtcreator-community.desktop ,如下图所示:


为方便使用 Qt Creator,可以右击复制该文件,然后粘贴到桌面文件夹或者主文件夹里使用, 点击该快捷方式文件就会打开 Qt Creator 工具。

*中文输入法问题*
按照上面安装方式,如果操作系统里的正好是 Fcitx 中文输入法,会出现新安装的 Qt Creator 里不能进行中文输入的问题。解决方法参考:
http://blog.csdn.net/crazyboy2009/article/details/38537099 
该帖子是解决 Ubuntu 里面问题的。对于 openSUSE Linux,安装软件包 fcitx-qt5 , 然后复制 .so 文件:
/usr/lib64/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so 
(64位系统是/usr/lib64/... ,32位系统是/usr/lib/...), 
粘贴一份到目录:
Qt安装目录/Tools/QtCreator/bin/plugins/platforminputcontexts/
再粘贴一份到目录:
Qt安装目录/5.4/gcc_64/plugins/platforminputcontexts/

1.4.3 Qt开发环境目录结构

Qt 在 Linux 系统里安装的东西比在 Windows 里的要少一些,因为 Linux 系统自带编译生成工具, 在前面 1.4.1 安装的就是编译生成工具和 Qt 依赖的库文件。在 Linux 系统里 Qt 安装的开发环境大致分为两部分:

  • Qt 类库的路径为 ~/Qt5.4.0/5.4/gcc_64 ;
  • QtCreator 集成开发环境的路径为 ~/Qt5.4.0/Tools/QtCreator 。

如果安装了 Qt 类库的源代码,则位于 ~/Qt5.4.0/5.4/Src 目录里面(波浪号 ~ 是指当前用户主文件夹,如用户 suse132 的主文件夹为 /home/suse132)。我们将 Linux 系统里 Qt 安装根的目录树绘制如下:

INSTALLDIR

安装目录里的结构和 Windows 系统里差不多,Docs 里的是帮助文档,需要 Qt Assistant 来查阅,Examples 是例子代码,最后的 MaintenanceTool 是管理工具,如果是用离线包安装的,那只能用它删除 Qt 开发环境,如果是在线安装方式,还可以用它管理 Qt 开发环境的组件和升级组件。
我们以 Qt 类库的目录 QTDIR 再细分查看,得到下图 Qt 类库根的目录树:

QTDIR

图上面列出的比较有限,主要是让读者熟悉一下 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


这时候显示的是系统路径里的Qt 4.8.6 版本:


如果我们进入新装的 Qt 5.4.0 里面所带的 bin 目录,执行命令:

cd ~/Qt5.4.0/5.4/gcc_64/bin/ 
./qmake -v


./ 就是指定当前目录里的qmake程序,这里是属于 Qt 5.4.0 的,所以显示为:


问题就来了,如果是使用系统自带的 Qt 4.8.6,那么打开默认命令行就可以编译了,不需要配置。 如果要用我们自己安装的 Qt 5.4.0 ,那该如何配置自己定制的命令行来编译程序呢?

当然是自己编个脚本来配置了。我们在用户主文件夹新建一个文件 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


等待联网安装完成后就可以在“开始菜单”-->“应用程序”-->“开发”-->“集成环境”里面找到Qt Creator,点击运行就可以了。 需要注意的是不同Linux发行版在不同时期打包的Qt版本是不一样的,会不断升级, 所以和上面Qt官方的5.4.0版本会有些差异,最好看看相应的发行说明。

最后补充一个在Mac OS X系统里安装Qt开发环境的链接:
http://doc.qt.io/qt-5/osx.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT linux安装 的相关文章

随机推荐

  • Python归并排序

    归并排序 数据科学家每天都在处理算法 然而 xff0c 数据科学学科作为一个整体已经发展成为一个不涉及复杂算法实现的角色 尽管如此 xff0c 从业者仍然可以从建立对算法的理解和知识库中受益 在本文中 xff0c 对排序算法归并排序进行了介
  • 平衡车PID调节总结

    https blog csdn net a568713197 article details 82845959
  • FreeRTOS详解三

  • Invalid bound statement (not found)出现的原因和解决方法

    解决错误的步骤 出现了什么错误可能导致的原因解决办法 出现了什么错误 错误截图 xff1a BindingException 数据绑定异常 not found 找不到 org apache ibatis binding BindingExc
  • TI Processor SDK 如何生成例程

    TI现在新的SDK都叫Process SDK了 例程要自己生成 这样好多人都说自己找不到例程在哪里 其实就是生成这一步搞不定 我以AM5728为例子说 先打开到pdk的目录 编辑箭头所示文件 安装在默认路径Cpan的可以忽略这一步 否则要改
  • PCIE BAR空间理解

    PCIE应用程序编程 xff0c 首先就要理清PCIE BAR空间到底说的是什么 在PCIE配置空间里 xff0c 0x10开始后面有6个32位的BAR寄存器 xff0c BAR寄存器中存储的数据是表示PCIE设备在PCIE地址空间中的基地
  • 老男孩读PCIe之五:TLP结构

    来源 xff1a http www ssdfans com p 61 3683 无论Request TLP xff0c 还是作为回应的Completion TLP xff0c 它们模样都差不多 xff1a 图5 1 TLP主要由三部分组成
  • vxWorks6.9及workBench3.3常见配置

    1 双斜杠注释 在workBench集成开发环境当中 xff0c 默认的注释方式为 xxxxxx 如果想要使用 注释的方法必须修改workBench 的编译选项 xff0c 为编译选项添加c99支持或者gnu89 在编译选项中添加 std
  • 可能是最全的FreeRTOS源码分析及应用开发系列

    可能是最全的FreeRTOS源码分析及应用开发系列 FreeRTOS 是一个可裁剪的小型且免费的 RTOS 系统 xff0c 尺寸非常小 xff0c 可运行于微控制器上 其特点包括 xff1a 内核支持抢占式 xff0c 合作式和时间片调度
  • FreeRTOS系列|FreeRTOS简介

    1 RTOS简介 RTOS全称为 Real Time Operation System xff0c 即实时操作系统 RTOS强调的是实时性 xff0c 又分为硬实时和软实时 硬实时要求在规定的时间内必须完成操作 xff0c 不允许超时 xf
  • FreeRTOS系列|任务创建和删除

    1 任务创建和删除API函数 xTaskCreate 函数 xff1a 动态创建一个新的任务 xff0c 每个任务都需要RAM来保存任务状态 任务控制块 43 任务栈 xff0c 此接口采用动态分配内存资源 BaseType t span
  • FreeRTOS系列|多任务调度

    1 多任务启动流程 多任务启动流程如下表所示 启动后以下各函数由上至下依次执行含义osKernelStart 启动内核vTaskStartScheduler 启动任务调度器xPortStartScheduler 启动调度器prvStartF
  • PTP 报文格式

    HeaderBodySuffix34 字节Variable lengthOptional 所有的 PTP 帧都包含一个公共报头 xff0c 它决定了协议版本和消息类型 xff0c 还定义了消息的剩余内容 所有多字节字段以大端顺序发送 xff
  • makefile:make -C M=参数的使用

    Makefile为 xff0c PWD span class token operator 61 span span class token punctuation span shell pwd span class token punct
  • BW笔记(2011-10-24更新至No.237)

    1 同一个变量名的UID可能有多个 xff0c 记得注意 2 在查找时要注意技术名称还是名称 xff0c 因为查询时会在两个中进行 xff0c 模糊查询时要细心 xff0c FV与V都可以查到 3 复制的时候注意长度 xff0c 过长的会不
  • rpmsg 内核开发 用户层接口

    地址 xff1a https blog csdn net thisway diy article details 129195479 韦东山 Tina Linux E907开发指南 AMP 环境搭建 7 1 rpmsg 内核开发 7 2 r
  • __raw_writel, writel_relaxed 和 writel的区别

    因为对别的平台不了解 xff0c 下面仅谈它们在ARM上的区别 raw writel xff1a 因为有volatile关键字 xff0c 所以编译器不会打乱多个 raw writel的执行顺序 对于ARM而言 xff0c 当多个写以代码的
  • WFE和WFI的区别

    1 概念 xff1a WFI Wait for interrupt 和WFE Wait for event 是两个让ARM核进入low power standby模式的指令 xff0c 由ARM architecture定义 xff0c 由
  • Ubuntu16.04安装中文输入法

    转载地址 xff1a http blog csdn net suxiang198 article details 52040283 Ubuntu16 04安装完后 xff0c 和12 04以及14 04都不一样 xff0c 并没有中文输入功
  • QT linux安装

    转载地址 xff1a http www cnblogs com tangkaixuan p 6504102 html 文章来自https lug ustc edu cn sites qtguide 1 4 Qt在Linux下安装 Qt在Li