



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、了解 Qt安裝目錄的結(jié)構(gòu)雖然不是編程必須的,但是它能練就我們的內(nèi) 功,讓我們對(duì)Qt的編程環(huán)境了如指掌。 Windows和Linux 下Qt安裝目錄的 結(jié)構(gòu)非常相似,我們以 Windows為例進(jìn)行講解,Linux不再贅述。Qt整體目錄結(jié)構(gòu)不同版本Qt的安裝目錄結(jié)構(gòu)大同小異,本節(jié)我們以 Qt 5.9.0為例來說明,如下圖所示。為了方便描述,下文我們使用 Y示Qt的安裝目錄。注意,5.9 和Tools目錄下都有 mingw53 32目錄(圖中我用紅色標(biāo)出來了),但是兩者是有區(qū)別的:? 5.9mingw53_32目錄包含的是Qt的類庫文件,例如頭文件、靜態(tài)庫、動(dòng) 態(tài)庫等,這些類庫文件使用 MinGW工
2、具集編譯而成。? Toolsmingw53_32 目錄包含的是 MinGW工具集,例如編譯器 g+、鏈接器 ld、make工具、打包工具 ar 等。QtCreator是個(gè)例外,QtCreator使用MSVC2015編譯生成的,所以安裝目錄里有一個(gè)vcredist文件夾存儲(chǔ)VC運(yùn)行庫安裝文件。最后的MaintenanceTool.exe ,對(duì)于離線安裝包,它只能用于刪除軟件包, 如果Qt開發(fā)環(huán)境是用在線安裝方式裝的,這個(gè)工具還可以管理開發(fā)環(huán)境組件 和升級(jí)組件。Qt類庫的幫助文件位于Docs文件夾里,需要用Qt Assistant工具才能查看。Examples 里是示例代碼,可以用 QtCreat
3、or 集成開發(fā)環(huán)境打開各個(gè)示例。Qt類庫目錄下面我們再探究一下Qt類庫目錄()的結(jié)構(gòu),如下圖所示。圖上列的比較有限,不一定全面,主要是教大家熟悉一下Qt的開發(fā)環(huán)境。QT不是憑空產(chǎn)生的,它是基于現(xiàn)有工具鏈打造而成的,它所使用的編譯器、 鏈接器、調(diào)試器等都不是自己的,Qt官方只是開發(fā)了上層工具。下面我們分幾 個(gè)部分講解Qt使用到的工具鏈。GNU工具集在上個(gè)世紀(jì)八十年代,計(jì)算機(jī)都是奢侈品,操作系統(tǒng)里最著名的是Unix家族,當(dāng)時(shí)還沒有 Windows、Linux之類的,Unix系統(tǒng)都是商業(yè)軟件,里面 的應(yīng)用軟件也是商業(yè)軟件, 全是封閉的環(huán)境。GNU項(xiàng)目是為了創(chuàng)建自由的類 Unix系統(tǒng),也因此開發(fā)出來很
4、多開源的系統(tǒng)工具,其中非常著名的就是 GCC(GNU Compiler Collection , GNU®譯器套現(xiàn)在我們知道,GUN開發(fā)類Unix系統(tǒng)的項(xiàng)目失敗了,但是它開發(fā)的一系 列工具集卻用到了后來的Linux內(nèi)核上,兩者結(jié)合形成了今天的各種 Linux 發(fā)行版。在GNU工具集里面,開發(fā)時(shí)常見到的幾個(gè)羅列如下(這些工具通常位 于Linux 或Unix 系統(tǒng)里的/usr/bin/ 目錄):說明工具gccGNU C語言編譯器。g+GNU C+語百編譯器oldGNU®接器,將目標(biāo)文件和庫文件鏈接起來,創(chuàng)建可執(zhí)行程序和動(dòng)態(tài)鏈 接庫。ar生成靜態(tài)庫.a ,可以編輯和管理靜態(tài)鏈接庫
5、。make生成器,可以根據(jù)makefile 文件自動(dòng)編譯鏈接生成可執(zhí)行程序或庫文 件。gdb調(diào)試器,用于調(diào)試可執(zhí)行程序。ldd 查看可執(zhí)行文件依賴的共享庫(擴(kuò)展名.so ,也叫動(dòng)態(tài)鏈接庫)MinGW原本GNU工具只在Linux/Unix 系統(tǒng)里才有,隨著 Windows系統(tǒng)的廣泛 使用, 為了在 Windows系統(tǒng)里可以使用GNU工具,誕生了 MinGW(Minimalist GNU for Windows ) 項(xiàng)目,利用 MinGW就可以生成 Windows 里 面的exe程序和dll鏈接庫。需要注意的是,MinGWf Linux/Unix 系統(tǒng)里GNU工具集的有些區(qū)別:? MinGWM面工
6、具帶有擴(kuò)展名.exe , Linux/Unix系統(tǒng)里工具通常都是沒有擴(kuò)展名的。? MinGWM面的生成器文件名為 mingw32-make.exe , Linux/Unix 系統(tǒng)里就叫 make? MinGW在鏈接時(shí)是鏈接到*.a庫引用文件,生成的可執(zhí)行程序運(yùn)行時(shí)依賴 *dll ,而Linux/Unix系統(tǒng)里鏈接時(shí)和運(yùn)行時(shí)都是使用 *so 。另外MinGW里也沒有l(wèi)dd 工具,因?yàn)?Windows不使用.so 共享庫文件。 如果要查看 Windows里可執(zhí)行文件的依賴庫,需要使用微軟自家的Dependency Walker工具。Windows里面動(dòng)態(tài)庫擴(kuò)展名為.dll , MinGW可以通 過
7、dlltool來生成用于創(chuàng)建和使用動(dòng)態(tài)鏈接庫需要的文件,如.def和.libMinGW 原本是用于生成32位程序的,隨著64位系統(tǒng)流行起來,從MinGW離出來了 MinGW-w64項(xiàng)目,該項(xiàng)目同時(shí)支持生成 64位和32位程序 Qt的MinGW版本庫就是使用MinGW-w64項(xiàng)目里面的工具集生成的。MSYS Minimal SYStem)另外提一下,由于MinGW本身主要就是編譯鏈接等工具和頭文件、庫文件, 并不包含系統(tǒng)管理、文件操作之類的 Shell環(huán)境,這對(duì)希望用類Unix命令 的開發(fā)者來說還是不夠用的。所以MinGW官方又推出了 MSYS(MinimalSYStem ,相當(dāng)于是一個(gè)部署在W
8、indows系統(tǒng)里面的小型Unix系統(tǒng)環(huán)境, 移植了很多Unix/Linux 命令行工具和配置文件等等,是對(duì) MinGW的擴(kuò)展。MSYS對(duì)于熟悉Unix/Linux 系統(tǒng)環(huán)境或者要嘗試學(xué)習(xí) Unix/Linux 系統(tǒng)的 人都是一種便利。MSYS?口 MinGW的安裝升級(jí)都是通過其官方的 mingw-get工 具實(shí)現(xiàn),二者是統(tǒng)一下載安裝管理的。對(duì)于MinGW-w64項(xiàng)目,它對(duì)應(yīng)的小型系統(tǒng)環(huán)境叫 MSYS2(Minimal SYStem 2) , MSYS2 MSYS的衍生版,不僅支持64位系統(tǒng)和32位系統(tǒng),還有自己 的獨(dú)特的軟件包管理工具,它從 Arch Linux 系統(tǒng)里移植了 pacman軟
9、件管理 工具,所以裝了 MSYS2之后,可以直接通過pacman來下載安裝軟件,而且可 以自動(dòng)解決依賴關(guān)系、方便系統(tǒng)升級(jí)等。裝了 MSYS2之后,不需要自己去下載 MinGW-w64可以直接用pacman命令安裝編譯鏈接工具和git 工具等。CMakeCMake( Cross platform Make )是一個(gè)開源的跨平臺(tái)自動(dòng)化構(gòu)建工具,可以跨平臺(tái)地生成各式各樣的makefile 或者project 文件,支持利用各種編 譯工具生成可執(zhí)行程序或鏈接庫。CMake 自己不編譯程序,它相當(dāng)于用自己的構(gòu)建腳本 CMakeLists.txt ,叫各種編譯工具集去生成可執(zhí)行程序或鏈接庫。一般用于編譯程
10、序的makefile 文件比較復(fù)雜,自己去編寫比較麻煩,而利用CMake ,就可以編寫相對(duì)簡單的 CMakeLists.txt ,由CMake根據(jù) CMakeLists.txt 自動(dòng)生成makefile ,然后就可以用 make生成可執(zhí)行程序或 鏈接庫。本教程里面是使用Qt官方的qmake工具生成makefile 文件,沒有用 CMake這里之所以提CMake,是因?yàn)檎麄€(gè)KDE桌面環(huán)境的茫茫多程序都是用 CMake腳本構(gòu)建的,另外跨平臺(tái)的程序 /庫如Boost C+ Libraries 、OpenCV LLVM Clang等也都是用CMake腳本構(gòu)建的。以后如果接觸到這些東西,是需 要了解CM
11、ake的。Qt工具集Qt官方的開發(fā)環(huán)境安裝包里有自己專門的開發(fā)工具,之前用過 qmake命 令。qmake是Qt開發(fā)最核心的工具,既可以生成 Qt項(xiàng)目文件.pro ,也可 以自動(dòng)生成項(xiàng)目的Makefile 文件。這里將常用的Qt開發(fā)工具列表如下:工具說明qmake核心的項(xiàng)目構(gòu)建工具,可以生成跨平臺(tái)的 .pro 項(xiàng)目文件,并依 據(jù)不同操作系統(tǒng)和編譯工具生成相應(yīng)的 Makefile ,用于構(gòu)建可執(zhí) 行程序或鏈接庫。uicUser Interface Compiler ,用戶界面編譯器,Qt使用XML語法 格式的.ui文件定義用戶界面,uic根據(jù).ui文件生成用于創(chuàng)建 用戶界面的C+代碼頭文件,比如
12、ui_*h。mocMeta-Object Compiler ,元對(duì)象編譯器,moc處理C+頭文件的 類定義里面的Q_OBJECI宏,它會(huì)生成源代碼文件,比如 moc_*cpp ,其中包含相應(yīng)類的兀對(duì)象代碼,兀對(duì)象代碼主要 用于實(shí)現(xiàn)Qt信號(hào)/槽機(jī)制、運(yùn)行時(shí)類型定義、動(dòng)態(tài)屬性系統(tǒng)。rccResource Compiler ,負(fù)源文件編譯器,負(fù)責(zé)在項(xiàng)目構(gòu)建過程中編 譯.qrc 資源文件,將資源嵌入到最終的 Qt程序里。qtcreator集成開發(fā)環(huán)境,包含項(xiàng)目生成管理、代碼編輯、圖形界面可視化編 輯、編譯生成、程序調(diào)試、上下文幫助、版本控制系統(tǒng)集成等眾 多功能,還支持手機(jī)和嵌入式設(shè)備的程序生成部署。assistantQt助手,幫助文檔瀏覽查詢工具,Qt庫所有模塊和開發(fā)工具的幫 助文檔、示例代碼等都可以檢索到,是 Qt開發(fā)必備神器,也可用 于自學(xué)Qt odesignerQt設(shè)計(jì)師,專門用于可視化編輯圖形用戶界面(所見即所得),linguist生成.ui文件用于Qt項(xiàng)目。Qt諦言家,代碼里用tr()宏包裹的就是可翻譯的字符串,開發(fā)人員可用lupdate
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45215-2025危險(xiǎn)貨物自反應(yīng)物質(zhì)和有機(jī)過氧化物引爆試驗(yàn)方法
- 停放車輛服務(wù)合同范本
- 加盟投資協(xié)議合同范本
- 住房購房合同范例
- 勞務(wù)家政合同范本
- 儀器安裝服務(wù)合同范本
- 修路挖機(jī)合同范本
- 臨時(shí)增項(xiàng)合同范本
- 北京公司擔(dān)保合同范本
- 做樓房施工合同范本
- 中醫(yī)師承跟師筆記50篇
- 《工程地質(zhì)學(xué)》孔憲立-石振明第五章(部編)課件
- 個(gè)人股份轉(zhuǎn)讓合同協(xié)議
- 聚乳酸-標(biāo)準(zhǔn)規(guī)程
- 供應(yīng)商對(duì)比方案報(bào)告
- 兒童支氣管哮喘規(guī)范化診治建議(2020年版)
- 《中國傳統(tǒng)文化》教案全套張建第1-10模塊歷史的天空中國傳統(tǒng)文化-絢麗的生活中國古代的生活方式
- 【重慶市S區(qū)部分居民糖尿病知識(shí)知曉情況調(diào)研報(bào)告(含問卷)11000字(論文)】
- 中南財(cái)經(jīng)政法大學(xué)806經(jīng)濟(jì)學(xué)(宏、微觀)考試大綱解析
- 卵巢癌術(shù)后護(hù)理查房
- 三輪車售后服務(wù)合同
評(píng)論
0/150
提交評(píng)論