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