Qt 發佈程序

#define me freshman //我是新手,發現錯誤請指正

你已經很厲害,可以寫一些實現自己想法的程序了。

那麼,寫好了之後,你需要分發給用戶來使用。

可在本機可以運行的程序,到了客戶端卻總是無法運行。

要麼提示,程序配置錯誤,請重新安裝。。
(由於應用程序配置不正確,應用程序未能啓動)


(VC2005編譯的程序)

或者提示找不到需要的dll文件,(沒有找到 **.dll,因此這個應用程序未能啓動)


(mingw32編譯的程序)

有兩種方法可以解決這個問題。

第一種,靜態編譯。
第二種,同時附上需要的dll文件。

靜態編譯

優點,發佈簡單,單一文件。
缺點,庫文件很大,更新程序版本不方便。每次升級,都要重新分發所有的內容。
。。。。。

mingw平臺靜態編譯,在編譯Qt的時候,有個configure.exe 程序,
configure.exe -static -platform win32-g++
可以產生靜態編譯項目文件。然後,
mingw32-make sub-src
就可以編譯出靜態庫。如果只是用來分發程序,也可以mingw32-make release sub-src 只編譯一個靜態庫。

VC2005平臺,在編譯Qt的時候,configure.exe -static-platform win32-msvc2005
然後nmake sub-src或者nmake release sub-src完成靜態編譯。

再然後,就是把你的程序重新用靜態編譯的Qt再編譯一次。
你會得到一個非常大的可執行程序。推薦使用AspPack壓縮一下。就可以發給用戶了。

附加Dll文件

優點,更新方便,發佈多個產品時,可以統一使用一個庫。
缺點,文件多、雜。
。。。

mingw編譯程序運行時需要的幾個dll文件
mingwm10.dll
QtCore4.dll
QtGui4.dll

VC2005編譯程序運行時需要的幾個dll文件
Microsoft.VC80.CRT.manifest 位於 x:/Program Files/Microsoft Visual Studio 8/VC/redist/x86//Microsoft.VC80.CRT
msvcm80.dll
msvcp80.dll
msvcr80.dll
QtCore4.dll
QtGui4.dll

推薦一個很好用的工具,微軟出的一個小工具Dependency Walker,也被微軟集成到了它的VS裏面。在
x:/Program Files/Microsoft Visual Studio 8/Common7/Tools/Bin/depends.exe
它可以檢測出絕大多數的程序需要的dll庫文件。這樣,就不用手動去查找缺失的dll文件了。
另外,還有一些你程序附加的dll庫文件,比如,sql.dll libpng.dll

下面,就可以發佈你的程序了~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章