學習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/ 裏面關於動態連接、靜態連接也值得一看。