#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
下面,就可以發佈你的程序了~