Qt安装目录的结构及工具集介绍_第1页
Qt安装目录的结构及工具集介绍_第2页
Qt安装目录的结构及工具集介绍_第3页
Qt安装目录的结构及工具集介绍_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、了解 Qt安装目录的结构虽然不是编程必须的,但是它能练就我们的内 功,让我们对Qt的编程环境了如指掌。 Windows和Linux 下Qt安装目录的 结构非常相似,我们以 Windows为例进行讲解,Linux不再赘述。Qt整体目录结构不同版本Qt的安装目录结构大同小异,本节我们以 Qt 5.9.0为例来说明,如下图所示。为了方便描述,下文我们使用 Y示Qt的安装目录。注意,5.9 和Tools目录下都有 mingw53 32目录(图中我用红色标出来了),但是两者是有区别的:? 5.9mingw53_32目录包含的是Qt的类库文件,例如头文件、静态库、动 态库等,这些类库文件使用 MinGW工

2、具集编译而成。? Toolsmingw53_32 目录包含的是 MinGW工具集,例如编译器 g+、链接器 ld、make工具、打包工具 ar 等。QtCreator是个例外,QtCreator使用MSVC2015编译生成的,所以安装目录里有一个vcredist文件夹存储VC运行库安装文件。最后的MaintenanceTool.exe ,对于离线安装包,它只能用于删除软件包, 如果Qt开发环境是用在线安装方式装的,这个工具还可以管理开发环境组件 和升级组件。Qt类库的帮助文件位于Docs文件夹里,需要用Qt Assistant工具才能查看。Examples 里是示例代码,可以用 QtCreat

3、or 集成开发环境打开各个示例。Qt类库目录下面我们再探究一下Qt类库目录()的结构,如下图所示。图上列的比较有限,不一定全面,主要是教大家熟悉一下Qt的开发环境。QT不是凭空产生的,它是基于现有工具链打造而成的,它所使用的编译器、 链接器、调试器等都不是自己的,Qt官方只是开发了上层工具。下面我们分几 个部分讲解Qt使用到的工具链。GNU工具集在上个世纪八十年代,计算机都是奢侈品,操作系统里最著名的是Unix家族,当时还没有 Windows、Linux之类的,Unix系统都是商业软件,里面 的应用软件也是商业软件, 全是封闭的环境。GNU项目是为了创建自由的类 Unix系统,也因此开发出来很

4、多开源的系统工具,其中非常著名的就是 GCC(GNU Compiler Collection , GNU®译器套现在我们知道,GUN开发类Unix系统的项目失败了,但是它开发的一系 列工具集却用到了后来的Linux内核上,两者结合形成了今天的各种 Linux 发行版。在GNU工具集里面,开发时常见到的几个罗列如下(这些工具通常位 于Linux 或Unix 系统里的/usr/bin/ 目录):说明工具gccGNU C语言编译器。g+GNU C+语百编译器oldGNU®接器,将目标文件和库文件链接起来,创建可执行程序和动态链 接库。ar生成静态库.a ,可以编辑和管理静态链接库

5、。make生成器,可以根据makefile 文件自动编译链接生成可执行程序或库文 件。gdb调试器,用于调试可执行程序。ldd 查看可执行文件依赖的共享库(扩展名.so ,也叫动态链接库)MinGW原本GNU工具只在Linux/Unix 系统里才有,随着 Windows系统的广泛 使用, 为了在 Windows系统里可以使用GNU工具,诞生了 MinGW(Minimalist GNU for Windows ) 项目,利用 MinGW就可以生成 Windows 里 面的exe程序和dll链接库。需要注意的是,MinGWf Linux/Unix 系统里GNU工具集的有些区别:? MinGWM面工

6、具带有扩展名.exe , Linux/Unix系统里工具通常都是没有扩展名的。? MinGWM面的生成器文件名为 mingw32-make.exe , Linux/Unix 系统里就叫 make? MinGW在链接时是链接到*.a库引用文件,生成的可执行程序运行时依赖 *dll ,而Linux/Unix系统里链接时和运行时都是使用 *so 。另外MinGW里也没有ldd 工具,因为 Windows不使用.so 共享库文件。 如果要查看 Windows里可执行文件的依赖库,需要使用微软自家的Dependency Walker工具。Windows里面动态库扩展名为.dll , MinGW可以通 过

7、dlltool来生成用于创建和使用动态链接库需要的文件,如.def和.libMinGW 原本是用于生成32位程序的,随着64位系统流行起来,从MinGW离出来了 MinGW-w64项目,该项目同时支持生成 64位和32位程序 Qt的MinGW版本库就是使用MinGW-w64项目里面的工具集生成的。MSYS Minimal SYStem)另外提一下,由于MinGW本身主要就是编译链接等工具和头文件、库文件, 并不包含系统管理、文件操作之类的 Shell环境,这对希望用类Unix命令 的开发者来说还是不够用的。所以MinGW官方又推出了 MSYS(MinimalSYStem ,相当于是一个部署在W

8、indows系统里面的小型Unix系统环境, 移植了很多Unix/Linux 命令行工具和配置文件等等,是对 MinGW的扩展。MSYS对于熟悉Unix/Linux 系统环境或者要尝试学习 Unix/Linux 系统的 人都是一种便利。MSYS?口 MinGW的安装升级都是通过其官方的 mingw-get工 具实现,二者是统一下载安装管理的。对于MinGW-w64项目,它对应的小型系统环境叫 MSYS2(Minimal SYStem 2) , MSYS2 MSYS的衍生版,不仅支持64位系统和32位系统,还有自己 的独特的软件包管理工具,它从 Arch Linux 系统里移植了 pacman软

9、件管理 工具,所以装了 MSYS2之后,可以直接通过pacman来下载安装软件,而且可 以自动解决依赖关系、方便系统升级等。装了 MSYS2之后,不需要自己去下载 MinGW-w64可以直接用pacman命令安装编译链接工具和git 工具等。CMakeCMake( Cross platform Make )是一个开源的跨平台自动化构建工具,可以跨平台地生成各式各样的makefile 或者project 文件,支持利用各种编 译工具生成可执行程序或链接库。CMake 自己不编译程序,它相当于用自己的构建脚本 CMakeLists.txt ,叫各种编译工具集去生成可执行程序或链接库。一般用于编译程

10、序的makefile 文件比较复杂,自己去编写比较麻烦,而利用CMake ,就可以编写相对简单的 CMakeLists.txt ,由CMake根据 CMakeLists.txt 自动生成makefile ,然后就可以用 make生成可执行程序或 链接库。本教程里面是使用Qt官方的qmake工具生成makefile 文件,没有用 CMake这里之所以提CMake,是因为整个KDE桌面环境的茫茫多程序都是用 CMake脚本构建的,另外跨平台的程序 /库如Boost C+ Libraries 、OpenCV LLVM Clang等也都是用CMake脚本构建的。以后如果接触到这些东西,是需 要了解CM

11、ake的。Qt工具集Qt官方的开发环境安装包里有自己专门的开发工具,之前用过 qmake命 令。qmake是Qt开发最核心的工具,既可以生成 Qt项目文件.pro ,也可 以自动生成项目的Makefile 文件。这里将常用的Qt开发工具列表如下:工具说明qmake核心的项目构建工具,可以生成跨平台的 .pro 项目文件,并依 据不同操作系统和编译工具生成相应的 Makefile ,用于构建可执 行程序或链接库。uicUser Interface Compiler ,用户界面编译器,Qt使用XML语法 格式的.ui文件定义用户界面,uic根据.ui文件生成用于创建 用户界面的C+代码头文件,比如

12、ui_*h。mocMeta-Object Compiler ,元对象编译器,moc处理C+头文件的 类定义里面的Q_OBJECI宏,它会生成源代码文件,比如 moc_*cpp ,其中包含相应类的兀对象代码,兀对象代码主要 用于实现Qt信号/槽机制、运行时类型定义、动态属性系统。rccResource Compiler ,负源文件编译器,负责在项目构建过程中编 译.qrc 资源文件,将资源嵌入到最终的 Qt程序里。qtcreator集成开发环境,包含项目生成管理、代码编辑、图形界面可视化编 辑、编译生成、程序调试、上下文帮助、版本控制系统集成等众 多功能,还支持手机和嵌入式设备的程序生成部署。assistantQt助手,帮助文档浏览查询工具,Qt库所有模块和开发工具的帮 助文档、示例代码等都可以检索到,是 Qt开发必备神器,也可用 于自学Qt odesignerQt设计师,专门用于可视化编辑图形用户界面(所见即所得),linguist生成.ui文件用于Qt项目。Qt谛言家,代码里用tr()宏包裹的就是可翻译的字符串,开发人员可用lupdate

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论