Qt 5.13.0靜態編譯後運行報錯缺少DLL解決方法

bug知悉

  • 在重新編譯新版本Qt(Qt 5.13.0)時,遇見的問題。靜態編譯成功並添加到Kit後,編譯後的程序運行提示缺少libgcc_s_dw2-1.dll等三個dll。這個問題在新版本里有略微變化,所以記錄下來。

環境

  • Qt 5.13.0 + MinGW 32bit
  • window 10 64bit

問題解決

  1. 先確定靜態編譯庫的目錄,如果是從電腦其他位置或者是他人電腦上拷貝過來的,可能會出現Qt Creator提示*“Qt沒有被正確安裝,請運行make install”。這是因爲qmake裏有編譯時的路徑信息,並且與現在的目錄信息不對應,出現這種情況,簡單的辦法是在E:\Qt\Qt5.13.0_MinGW_static\bin*目錄下新建qt.conf文件:

[paths]
Prefix = …

  1. 修改E:\Qt\Qt5.13.0_MinGW_static\mkspecs\common\g+±win32.conf
  • 修改前:

QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
QMAKE_LFLAGS_RELEASE = -Wl,-s
QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows
QMAKE_LFLAGS_DLL = -shared

  • 修改後:

QMAKE_LFLAGS = -static //新增
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
QMAKE_LFLAGS_RELEASE = -Wl,-s
QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows
QMAKE_LFLAGS_DLL = -static //修改

(之前版本是修改的E:\Qt\Qt5.13.0_MinGW_static\mkspecs\win32-g++\qmake.conf

寫在後面

知識共享許可協議
本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。

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