QT 靜態(tài)編譯和 Debug 庫問題 成功解決
QT 靜態(tài)編譯和 Debug 庫問題解決是本文將要介紹的問題,解決QT靜態(tài)編譯和debug庫問題(mingwm10.dll丟失、collect2:ld returned 1 exit status)通過網(wǎng)上到處找資料,終于搞定了遇到的問題,相信其它人也會遇到,我就把解決方法非寫出來了:
平臺:windows7
軟件:qt4.6+qt creator 1.3
使用的安裝包是 qt-sdk-win-opensource-2009.05.exe
問題描述:
(1)使用qt creator 生成工程,寫好程序進行編譯運行,在qt creator點擊運行,程序能跑起來,沒問題,可是我在工程目錄下找到編譯生成的程序雙擊運行時,提示缺少mingwm10.dll,無法運行。
(2) 按照 http://wiki.qtcentre.org/index.php?title=Building_static_Qt_on_Windows#MinGW 這個方法完成操作以后,使用qt creator 不能用debug,只能使用release選項,使用debug選項產(chǎn)生的錯誤提示是:collect2:ld returned 1 exit status 通過查找資料發(fā)現(xiàn)是缺少debug庫
解決方案:
(1)編輯 C:\Qt\2009.05\qt\mkspecs\win32-g++\qmake.conf 文件 把 QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
改為:QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
(2)在開始菜單里找到Qt Command Prompt并運行,輸入命令: configure -static -debug-and-release -no-exceptions
(3)上一條命令運行成功后再輸入命令: mingw32-make sub-src
等1 ~3 小時可能就運行完了 完成后就ok了。。。
已經(jīng)在我的機子上驗證,祝大家好運!Debug時當然用debug了,大一點沒關(guān)系。Debug完之后正式發(fā)布軟件再用release編譯一遍。然后還可以strip一下exe、在upx一下exe和dll,體積會非常小。
小結(jié):關(guān)于 QT 靜態(tài)編譯和 Debug 庫問題解決的內(nèi)容介紹完了,希望本文對你有所幫助。