学习QT时,遇到了MinGW,之前一直用vs编写程序,一直没遇到另外一种编译器。根本没有造成一个概念。Mark。c++
1、什么是工具集ide
咱们在写代码时,若是没有各类开发工具集,咱们写的各类代码只不过是一种TXT格式的文件。但有了开发工具,咱们就能够对这些代码进行编译、连接。从而变成可执行文件或库文件。针对不一样的平台,有不一样的开发工具。工具
2、各类平台下的开发工具。学习
2.1 Unix、Linux环境。开发工具
GNU 工具集。包含 gcc、g++、Id、ar、make、gdb、Idd。ui
gcc:C语言编译器。调试
g++:c++语言编译器。对象
Id:连接器,将目标文件与库文件连接起来,建立可执行程序和动态连接库。资源
ar:生成静态库“.a”。能够编辑和管理静态连接库。开发
make:生成器。根据Makefile文件自动编译连接生成可执行程序或库文件。
gdb:调试器,用于调试可执行程序。
Idd:查看可执行文件依赖的共享库(扩展名“.so”,动态连接库)
2.2 Windows 环境
MinGW、MSVC等。
MinGW:利用MinGW就能够在Windows中生成exe程序和dll连接库。与GNU同样,也属于工具集,包含各类子系统,可是通常仍是统称为MinGW。
与GNU的区别:
4. 没有Idd工具,不适用.so共享库文件。
MSVC:visual studio使用的编译器。功能和MinGW相似。
2.3 CMake
CMake是一个开源的跨平台的自动化构建工具,能够跨平台生成各式各样的makefile或者project文件。前面已经提到过Makefile文件在生成中的做用,CMake其实就是根据本身构建的脚本CMakeLists.txt 自动生成Makefile。而后就能够用make生成可执行程序或者连接库。Qt中是利用Qmake来生成Makefile文件。
2.4 Qt中的工具集
qmake:生成Makefile文件,生成跨平台的.pro项目文件。
uic:User Interface Compiler。根据.ui 文件生成用于建立用户界面的c++代码头文件,
moc:Meta-Object Compiler。元对象编译器。moc处理c++头文件类定义里面的Q_OBJECT宏,生成源代码文件。元对象代码主要用来实现Qt信号/槽机制。
rcc:资源文件编译器。编译.qrc资源文件。将资源嵌入到Qt程序中。
qtcreator、assistant、designer、linguist、qmlscene。
参考:https://qtguide.ustclug.org/ 里面关于动态连接、静态连接也值得一看。