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

写在后面

Qt 5.13.0静态编译后运行报错缺少DLL解决方法
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

上一篇:MySQL 8.0弃用的部分参数整理


下一篇:go编译go-gtk 报错