码迷,mamicode.com
首页 > 其他好文 > 详细

Qt学习(3)

时间:2015-12-07 18:25:16      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

Qt学习(3)—开发工具简介

1、GNU工具集

    在上个世纪八十年代,计算机都是奢侈品,操作系统里最著名的是 Unix 家族,当时还没有 Windows、Linux之类的,Unix 系统都是商业软件,里面的应用软件也是商业软件,全是封闭的环境。系统程序员 Richard M. Stallman (RMS) 在此环境下创立了与众不同的GNU项目 (GNU‘s Not Unix),以及推进自由软件发展的 Free Software Foundation (FSF)自由软件基金会。 GNU 项目是为了创建自由的类 Unix系统,也因此开发出来很多开源的系统工具,其中非常著名的就是 GCC(GNU Compiler Collection,GNU编译器套件)。在GNU工具集里面,开发时常见到的几个罗列如下(这些工具通常位于 Linux 或 Unix 系统里的 /usr/bin/ 目录):

 

gcc GNU C 语言编译器。
g++ GNU C++ 语言编译器。
ld GNU 链接器,将目标文件和库文件链接起来,创建可执行程序和动态链接库。
ar 生成静态库 .a ,可以编辑和管理静态链接库。
make 生成器,可以根据 makefile 文件自动编译链接生成可执行程序或库文件。
gdb 调试器,用于调试可执行程序。
ldd 查看可执行文件依赖的共享库(扩展名 .so,也叫动态链接库)。

 

2、MinGW

        原本 GNU 工具只在 Linux/Unix 系统里才有,随着 Windows 系统的广泛使用,为了在 Windows 系统里可以使用 GNU 工具,诞生了 MinGW(Minimalist GNUforWindows)项目,利用 MinGW 就可以生成 Windows 里面的 exe 程序和 dll 链接库。需要注意的是,MinGW 与 Linux/Unix 系统里 GNU 工具集的有些区别:

  • MinGW 里面工具带有扩展名 .exe, Linux/Unix 系统里工具通常都是没有扩展名的。
  • MinGW 里面的生成器文件名为 mingw32-make.exe,Linux/Unix 系统里就叫 make。
  • MinGW 在链接时是链接到 *.a 库引用文件,生成的可执行程序运行时依赖 *.dll,而 Linux/Unix         系统里链接时和运行时都是使用 *.so 。

         另外 ,MinGW 里也没有 ldd 工具,因为 Windows 不使用 .so 共享库文件。如果要查看 Windows 里可执行文件的依赖库,需要使用微软自家的 Dependency Walker 工具。 Windows 里面动态库扩展名为 .dll,MinGW 可以通过 dlltool 来生成用于创建和使用动态链接库需要的文件,如 .def 和 .lib。

         MinGW 原本是用于生成 32 位程序的,随着 64 位系统流行起来,从 MinGW 分离出来了 MinGW-w64 项目,该项目同时支持生成 64 位和 32 位程序。Qt 的 MinGW 版本库就是使用 MinGW-w64 项目里面的工具集生成的。

        另外提一下,由于 MinGW 本身主要就是编译链接等工具和头文件、库文件,并不包含系统管理、文件操作之类的 Shell 环境,这对希望用类 Unix 命令的开发者来说还是不够用的。所以 MinGW 官方又推出了 MSYS(Minimal SYStem),相当于是一个部署在 Windows 系统里面的小型 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 软件管理工具,所以装了 MSYS2 之后,可以直接通过pacman 来下载安装软件,而且可以自动解决依赖关系、方便系统升级等。装了 MSYS2 之后,不需要自己去下载 MinGW-w64,可以直接用pacman命令安装编译链接工具和 git 工具等。

 

MinGW 项目主页(含 MSYS):         http://www.mingw.org/      

MinGW-w64 项目主页:         http://sourceforge.net/projects/mingw-w64/      

MSYS2 项目主页:         http://sourceforge.net/projects/msys2/

 

Qt学习(3)

标签:

原文地址:http://www.cnblogs.com/wyxsq/p/5026676.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!