久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

Qt5 編譯 & 打包依賴dll發布

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年04月03日   【字體:

十年前學
C++的時候,無聊到把windows 文件夾下幾乎所有的*.dll 都看過一遍。偶爾在程序運行時看到缺少 *.dll 的提示,都會直接找出來解決。

 

隨著“開發平臺”和“編譯器”版本的逐年升級,一個程序的依賴鏈接庫體積也越來越大,這給碼農、程序猿、軟件攻城獅們測試和發布都造成了比較大的麻煩!

六年前做過某專業軟件漢化包的安裝程序打包,感覺專業的安裝程序制作工具對一些小程序來說太浪費了,而且用戶會覺得不夠“綠色”。如果能夠簡單的完成打包,并滿足基本要求,那是比較好的解決方案。

前段時間有不少人都問到我“用什么軟件做上位機GUI比較好?”,最近看了兩天Qt,就拿這個說事吧。

Qt,是一個1991年由奇趣科技開發的跨平臺C++圖形用戶界面應用程序開發框架。和Java的“一次編譯,到處運行”所不同的是,Qt是源代碼級的跨平臺,具有“一次編寫,到處編譯”的特性。Google EarthSkypeOpera…… 很多軟件都是基于Qt編寫的。

目前最新版本是 5.1.1,由于前段時間玩linux 的編譯上癮了,也懶得去裝 MS Virual Studio2010/2012,于是下載了qt-windows-opensource-5.1.1-mingw48_opengl-x86-offline.exe(集成mingw4.8opengl)。

一、    軟件環境安裝與設置

5.1.1 版本在windows平臺的移植和集成進一步完善了,不需要像網上那些針對舊版本的教程中說的需要繁瑣的設置。只需要像典型的windows安裝程序一樣鼠標點擊即可完成安裝(當然在安裝中要注意的是:mingw 默認并未選中)。

這個是能夠持續看上兩天Qt的主要原因!!!

二、    項目設置與程序編譯

這個看看教程就行了,只是5.1.1 的教程暫時還沒有出現!

隨便找了個經典的“Hello world!”來跑了一下,有驚無險的“構建成功”。

PS:和所有英文軟件一樣,項目路徑里不要有中文、日文、韓文、火星文等等說英語的家伙不認識的符號!

PS:不要認為別人編譯通過的程序就一定能編譯成功,編譯環境和軟件升級中的更新都可能導致失敗!

三、    程序發布

程序編譯的時候默認是“debug”的,其實和“release”生成的exe 都差不多,只是依賴鏈接庫的大小不一樣。對于普通用戶,其實對程序大小是不敏感的,更多的人會關心華麗的人機界面或者繁雜的功能。只有要求苛刻的嵌入式系統用戶和有強迫癥的碼農、程序猿、軟件攻城獅們會追求極限的壓縮體積!

四、    程序打包

要求苛刻的嵌入式系統用戶有時候寧愿舍棄新的功能,都會要求穩定可靠的應用,而版本升級有時候并沒有軟件開發商的廣告說的那么美好。

eg:隨便下了個“串口調試助手”來做Model

Qt4編譯這個“串口調試助手”,生成的依賴鏈接庫只有4個,文件大小都還能夠接受;

換成Qt5 來編譯,會發現一下多了很多東西出來!

 


即使是用壓縮工具壓縮打包以后(
 
)的體積,仍然比未壓縮的舊版本要大!

 


一個小工具(一個
mingw編譯的Qt gui程序),依賴的DLL實在是太多,著實有點不太方便。而在社區里更多人提到的都是“靜態編譯”,但是使用“靜態編譯”又會受到開源許可的一些限制。

現在該是我們的小伙伴“Enigma Virtual Box”表現的時候了!!!

五、    打包依賴鏈接庫

EnigmaVirtual Box 最新版本是 6.80 Build 20131003,啟動后如下圖所示:

 


在“
Enter Input File Name”一欄指定Qt編譯生成的 *.exe 文件,同時在“EnterOutput File Name”一欄會自動生成打包后輸出文件的路徑和文件名稱。(請無視中間的廣告!)

點擊左下方的“Add…”按鈕,添加所有的依賴鏈接庫文件;然后點擊右下方的“FilesOptions”,在彈出的對話框里選中“Enable Files Virtualization”和“CompressFiles”兩項;“OK”后返回點擊“Process”并等待小伙伴干完該干的活。

 


小伙伴生成的
*.exe 文件(18.247KB )的尺寸要小了很多,并且這是一個純粹的“綠色軟件”,直接復制就能在任何存儲介質上運行了!有了這個,媽媽再也不用擔心系統會突然彈個框框出來,提示缺少××.dll 文件了!

六、    Qt5 主要依賴鏈接庫說明

1.QT模塊庫

1

2

3

4

Qt5Core.dll      #QT核心庫

Qt5Gui.dll       #QT Gui

Qt5Widgets.dll   #QT Widgets庫,QT 5GUI程序基本都需要此dll

#還有其他程序用到的Qt5XXX.dll

2.ICU依賴庫

International Component for UnicodeUnicode工具)

1

2

3

icudt51.dll     

icuin51.dll    

icuuc51.dll   

3.QT插件庫(新增庫,路徑必須正確)

1

2

3

4

5

6

# 根據不同的程序,需要不同的插件庫

#例如 QT_DIR/plugins/*/*.dll

# 需要將 platforms/*.dll,accessible/*.dll的文件結構保留

# 放在你所編譯的程序所在目錄

plugins/platforms/qwindows.dll

plugins/accessible/qtaccessiblewidgets.dll

4.EGL依賴庫,為OpenGL,OpenGL es提供接口

1

2

libEGL.dll

libGLESv2.dll

5.mingw依賴庫(msvc編譯則無需這些庫)

1

2

3

libgcc_s_dw2-1.dll

libstdc++-6.dll

libwinpthread-1.dll

6.VC運行庫(mingw編譯則無需這些庫)

1

2

msvcr110.dll(對應VS2012

msvcp110.dll

 

最后,讓新的小伙伴 Qt5 給我打個招呼,得瑟一下!

關閉窗口

相關文章

主站蜘蛛池模板: 午夜视频在线视频 | 亚洲午夜视频在线观看 | 91精品久久久久久久久中文字幕 | 国产女人叫床高潮大片免费 | 亚洲午夜视频在线观看 | 亚洲国产欧美国产综合一区 | 欧美啪啪网站 | 一区二区电影 | av黄色免费在线观看 | 日韩一区和二区 | 亚洲一区三区在线观看 | 免费视频一区二区三区在线观看 | 中文字幕在线免费视频 | 香蕉视频1024| 日韩精品一区在线 | 国产精品毛片在线 | 人人人人人爽 | 免费观看一级特黄欧美大片 | 国产一区二区三区四区五区加勒比 | 国产精品亚洲一区二区三区在线 | 午夜视频在线 | 国产三级网站 | 色一情一乱一伦一区二区三区 | 欧美日韩亚洲国产 | 国产亚洲欧美在线 | 国产精品毛片一区二区在线看 | 亚洲一级黄色 | 国产一区亚洲二区三区 | 午夜精品久久久 | 久久99精品久久久久 | 成人在线小视频 | 成人精品视频在线观看 | 国产免费一区二区三区 | 国产www成人 | 精品欧美一区二区在线观看欧美熟 | 日韩在线视频观看 | 精品欧美一区二区精品久久久 | 欧美激情在线精品一区二区三区 | 日本一区二区三区在线观看 | 精品一区二区三区四区 | 国产精品久久久久久亚洲调教 |