标签:
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 里也没有 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/
标签:
原文地址:http://www.cnblogs.com/wyxsq/p/5026676.html