當前位置:名人名言大全網 - 笑話故事 - Qt 軟件中怎麽自動加入build版本號

Qt 軟件中怎麽自動加入build版本號

當進入解壓好的源碼包後,使用./configure –help命令,可以獲得相應幫助,那我們只要選取參數部分看看-release這個參數顯而易見,就是編譯Qt以發布版的模式進行,壹般來說,最後系統完成後,庫就應該是發布版。-release與上面對應,自然是調試版了,如果開發的話,可以選擇它吧。-debug-and-release囧,上面那兩個的兒子。-developer-build囧,我錯了,開發者也可以用這個的,選了這個後,可以進行自動測試,不過還沒去用過,以後可以研究研究。-opensource-commercial這兩個參數是指是編譯是商業版本的,還是開源版本呢,視個人情況而定。-shared-static這兩個參數是指Qt的lib以動態還是靜態編譯生成,這自然也是視個人需要的。-no-fast-fast這兩個就很有關系,如果對自己的電腦性能很有信心,那就選第壹個,那所有的工程文件都會生成到makefiles中,那編譯的時間,估計可以看完變形金剛了。如果選第二個,那就加入子目錄和庫到makefiles,這樣就能加快編譯的速度。-no-largefile-largefile顧名思義,支不支持大文件,壹般來說,嵌入式裏是不會有從超過4G的大文件的,那就選第壹個吧。-no-exceptions-exceptions計算機英語夠好的人都該懂,這個自然就是異常情況,選則編譯器支持拋出異常,否則不支持。-no-accessibility-accessibility可訪問性的支持,說實話,這個我真不知道有什麽有用了。等哪天發現了,再來好好解釋。-no-stl-stl是都加入stl的支持,stl,這應該算是C++程序員應該都了解了,再不濟,那也總聽說過大名吧。no-sql-<driver>-qt-sql-<driver>-plugin-sql-<driver>這 個可要好好說明下,壹般來說,對於壹個優秀的項目開發,數據庫是必不可少的,qt也自帶了大多數數據庫驅動,可以完美地支持數據庫的使用。對於數 據庫的使用,我們可以直接qt驅動編譯進去,或者以插件的形式編譯進去。壹般來說,最簡單地就是直接編譯進去,但使用插件形式的可以更加靈活,針對不同的 需求將驅動插件添加。其中,<>代表的是驅動名,如果我想直接添加sqlite的支持話,形式如下:-qt-sql-sqlite。其他名稱 可以自己查看參數裏,有詳細地介紹。-system-sqlitesqlite真受歡迎啊,當然那麽優秀的嵌入式數據庫,本人也是基本使用它來進行開發。這個參數意思是使用操作系統上的sqlite數據庫,如果是不太會移植的,可以考慮直接使用qt自帶的驅動。-no-qt3support-qt3support這個也是簡潔易懂,加不加對qt3的支持。no-xmlpatterns-xmlpatterns選擇對xml的支持,如果對網絡無需求的話,就不用加了。-no-phonon-phononphonon是qt中處理多媒體的模塊,比如放放視頻什麽來著,不過本人從沒用過,也是根據需要選擇的。-no-phonon-backend-phonon-backend與上面類似,只不過這兩是以插件的形式加入支持。-no-svg-svg是否加入svg的支持,svg即可縮放矢量圖形。-no-webkit-webkit是否加入webkit的支持,這可是個好東西,不過如果跟網絡不搭界的話,還是不支持吧。-no-scripttools-scripttools是否加入腳本工具的支持,這對php等腳本工程師來說是個很棒的參數,但對於我這樣菜鳥,就別提了。-platform target目標平臺,這可是關鍵了,如果不註意的話,編譯出來是x86上的話,哪怕是再牛的嵌入式工程師來也沒法幫妳移植到開發板上。通常,本人是linux-arm-g++。-no-mmx-no-3dnow-no-sse-no-sse2這四個參數是針對CPU的指令集,老實說,我也不甚了解,不過,對於開發並不是影響很大。-qtnamespace把qt的庫封裝到命名空間,沒啥重要用處,依個人愛好加吧。-qtlibinfix將所有的qt的.so庫重命名,也沒啥大用處。-no-sql-<driver>-qt-sql-<driver>-plugin-sql-<driver>-system-sqlite這是相當明顯的,如果這都看不出來,,囧,那您壹定比我近視(本人800度近視。。)就 是說如果是-no-XX-,就說明編譯時不選擇這個參數,如過是-qt-XX-,說明我們可以編譯直接選用qt自帶的驅動,如果是 -plugin-XX-,就是將驅動以插件形式編譯,而-system-XXX,當然是使用操作系統提供的驅動,不過那就需要您自己移植了,而且有時還要 用第三方的API,就方便來說非常麻煩,但是不排除您是牛人要好好玩玩的情況。接下來,我們接著研究配置參數。-qt-zlib-system-zlib想 必經過上面的講解,參數的意思已經很快得知,就是選擇qt帶的zlib庫還是系統的zlib。zlib庫是用於文件和資料壓縮的庫,對於新入嵌入式的人來 說,可能並無太大的用處,但是在以後的實際開發中,特別是對於多媒體圖像圖形的工程師來說,就肯定用到,因為圖形圖像的壓縮都要使用或涉及到這個庫。-no-gif-qt-gif這是選擇gif的支持,如果選擇qt支持的話,那在用qt開發的項目中,就能顯示gif圖,gif也是比較普遍的圖片格式了,英文全稱是Graphics Interchange Format。-no-libtiff-qt-libtiff-system-libtifftiff是壹種非常復雜的光柵圖像格式,並且有直接現成的C語言實現庫,因此選擇參數時就有了qt和system,壹般來說,科學相關的開發裏可能會用到。-no-libpng-qt-libpng-system-libpngpng的相關參數,壹種非失真性壓縮位圖圖形文件格式,其實就是為了替代gif搞出來的,也是隨實際需要來選擇,當然,也有C語言實現的庫。-no-libmng-qt-libmng-system-libmng大汗,大汗,這可是超級罕見的東西,QT竟然也能支持,說實話,這個參數我看來就是無視的。MNG是多幀PNG動畫格式,結構極其復雜,基本沒人用。-no-libjpeg-qt-libjpeg-system-libjpegjpeg,這麽有名的圖片格式也不用說了,隨需要選擇吧。-no-openssl-openssl-openssl-linkedSSL,Security Socket Layer,是壹個安全傳輸協議,在Internet網上進行數據保護和身份確認,而OpenSSL是壹個開放源代碼的實現了SSL及相關加密技術的軟件 包,在qt中,我們可以選擇直接支持,或者OpenSSL鏈接支持,這個參數也是為有需要者提供的。以上是第三方庫的參數選擇,緊接著就是qt附加參數,在附加參數裏,我們可以指定編譯的部分及加入參數來獲取信息。-make-nomake壹 句話,說明,就說我可以這兩個參數選擇哪些我要編譯,哪些我不需要,在 libs tools examples demos docs translations這些裏妳可以選擇,比如examples,並不重要,可以放在-nomake後,這樣編譯過程中就不會編譯這部分了。通過適當的 選擇,我們可以大大加快編譯的速度,這對配置較差的機子來說有著積極意義。-R <string>-l <string>這兩個參數是為編譯時增加壹個庫的運行路徑及頭文件的路徑,比如使用tslib作為開發觸摸驅動時,我們就應使用這兩個參數來指定tslib的庫路徑和頭文件路徑。-no-rpath-rpath這個參數比較難於理解,簡單地說,就是告訴動態加載器,到-rpath指定的目錄中尋找編譯時須要的動態鏈接庫,語法就與上面的參數結合,比如 -rpath -R/home/xxxx。-continue這個參數的作用就是當出現錯誤時依然進行配置編譯,換我是不會加上的。-verbose, -v這個參數就很眼熟,在前面的文章中有過詳細介紹,簡言之,就是顯示配置的每壹步的具體信息。-no-optimized-qmake-optimized-qmake是否編譯生成優化過的qmake,沒啥大用,也屬於可有可無的參數。-no-nis-nis是否編譯NIS支持,NIS(網絡信息服務)是壹個提供目錄服務的RPC(遠程過程調用)應用服務,當然沒網絡需要的可以再次華麗地無視。-no-cups-cups是 否編譯CUPS支持,是不是想問什麽用啊?~~~~囧,開打印店用的。好了,不說冷笑話,CUPS給Unix/Linux用戶提供了壹種可靠有效 的方法來管理打印。它支持IPP,並提供了LPD,SMB(服務消息塊,如配置為微軟WINDOWS的打印機)、JetDirect等接口。CUPS還可 以瀏覽網絡打印機。它的開發提供者是大名鼎鼎的“水果生產商”----蘋果公司。-no-iconv-iconv選擇是否編譯iconv支持,iconv是壹個計算機程序以及壹套應用程序編程接口的名稱。它的作用是在多種國際編碼格式之間進行文本內碼的轉換。這對跨語言Qt開發人員來說是很有用的,當然,考慮到中文的編碼,我也選擇加入支持。-no-pch-pch是 否支持預編譯過的頭文件。預編譯頭就是把壹個工程中的壹部分代碼,預先編譯好放在壹個文件裏(通常以.pch為擴展名),這個文件就稱為預編譯頭 文件。這些預先編譯好的代碼在工程開發的過程中不會被經常改變。如果這些代碼被修改,則需要重新編譯生成預編譯頭文件。媽媽經常說:不懂就要學。我說:不 懂就加上。。。no-dbus-dbus-dbus-linked是否編譯編譯QtDBus模塊。dbus是freedesktop下開源的Linux IPC通信機制,本身Linux 的IPC通信機制包括,管道(fifo),***享內存,信號量,消息隊列,Socket等。在Qt中DBUS是有單獨的模塊的,可見其重要性。 -reduce-relocations 對於額外的庫鏈接器優化,可以減少編譯中的再定位。no-separate-debug-info-separate-debug-info是否存儲debug信息在.debug,壹般為了查錯,還是選擇存儲吧。-xplatform target相當淺顯的參數,即交叉編譯的目標平臺,壹般來說根據妳所要移植的目標板來確定。-no-feature-<feature>-feature-<feature>選 取qte的feature編譯,對於這個,我理解為特性,特性的描述妳可以參考src/corelib/global/qfeatures.txt,在這 裏面對於每個特性都有比較充分的講解。對於特性地選擇,也是要根據開發需求進行,如果裁剪適當,能大大為qte庫瘦身。-embedded <arch>嵌入式平臺架構選擇,可以選擇arm,mips,x86及generic,視妳的目標平臺決定吧。-armfpa-no-armfpa這個參數也只是針對ARM平臺的,是否加入對於基於ARM的浮點數格式的支持,通常,這個參數在編譯時會自動選擇。-little-endian-big-endian目標平臺的大端和小端選擇,這應該是常識了,如果這不知道,就不要來混嵌入式了-host-little-endian-host-big-endia主機平臺的大端和小端選擇,屬於雞肋的參數,不選擇也會在配置時自動選擇。-no-freetype-qt-freetype-system-freetype選擇freetype,FreeType庫是壹個完全免費(開源)的、高質量的且可移植的字體引擎,它提供統壹的接口來訪問多種字體格式文件,在嵌入式開發中,有套可使用的字體對於中文開發至關重要,本人壹般使用文泉驛字體。-qconfig local使用本地的qconfig配置文件來替代全部參數配置,有需要的可以去研究下,可以裁剪控件級別的參數。-depths <list>顯示的像素位深,也是根據需要來進行吧。-qt-decoration-<style>-plugin-decoration-<style>-no-decoration-<style>這個是選擇qt的樣式風格,對於需要美化界面的項目來說,可以好好選擇下。-no-opengl-opengl <api>是否加入opengl的支持,OpenGL是個專業的3D程序接口,是壹個功能強大,調用方便的底層3D圖形庫。不過對於壹般的開發來說,似乎有很少用到的地方。-qt-gfx-<driver>-plugin-gfx-<driver>-no-gfx-<driver>這個是相當重要的壹個參數,選擇QtGui的圖形顯示驅動,比如我們在pc上使用qvfb模擬時,就應該加入對qfvb的支持。我們可以在 linuxfb,transformed,qvfb,vnc,multiscreen這幾個中選擇。在平常的開發板上,選擇linuxfb即可。-qt-kbd-<driver>-plugin-kbd-<driver>-no-kbd-<driver>選擇鍵盤的驅動支持,可以支持usb鍵盤,串口鍵盤等等,也是在tty,usb ,sl5000, yopy, vr41xx ,qvfb中選擇。qt-mouse-<driver>-plugin-mouse-<driver>-no-mouse-<driver>鼠標的驅動支持,壹般都會選擇tslib,可以完美地支持觸摸屏,在pc,bus,linuxtp,yopy,vr41xx,tslib,qvfb中選擇吧。-iwmmxt加入iWMMXt指令的編譯,也只是部分XScale架構才具有。-no-glib-glib是否加入glib庫的支持,glib庫對應即gtk庫,就也是說加入後可以使用gtk。