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 国际许可协议进行许可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是在 Windows 平台上使用 MSVC 2015 编译 Qt 5.6 静态库的步骤: 1. 下载 Qt 5.6 源代码,可以从官网下载或者从 GitHub 上下载。 2. 安装 Perl 解释器。可以从 ActivePerl 官网下载。 3. 安装 Python 解释器。可以从 Python 官网下载。 4. 安装 Python 的包管理工具 pip。在命令行中输入 `python -m ensurepip` 命令安装。 5. 安装 Python 的依赖库 pywin32。在命令行中输入 `pip install pywin32` 命令安装。 6. 安装 Qt 5.6 的依赖库。在命令行中进入 Qt 5.6 源代码目录,输入 `configure -static -prefix C:\Qt\5.6-static -opensource -confirm-license -nomake examples -nomake tests` 命令安装。 7. 编译 Qt 5.6 静态库。在命令行中输入 `nmake` 命令编译。 8. 安装 Qt 5.6 静态库。在命令行中输入 `nmake install` 命令安装。 9. 配置 Qt Creator。打开 Qt Creator,选择 Options -> Build & Run -> Kits,选择一个已安装的 Qt 版本,将编译器设置为 MSVC 2015,将 Qt 版本设置为静态编译Qt 5.6。 10. 创建一个 Qt 静态工程。在 Qt Creator 中选择 File -> New File or Project -> Application -> Qt Widgets Application,选择一个路径和名称,然后点击 Next。在 Kits 中选择刚才配置的 Qt 静态版本,然后点击 Next。在 Class Information 中选择 Main Window 和创建的工程名称,然后点击 Next。最后点击 Finish。 11. 编译运行 Qt 静态工程。在 Qt Creator 中点击 Build -> Build All,然后点击 Run -> Run。如果一切正常,将会看到一个空的窗口。 希望这些步骤能够帮助你进行 Qt 5.6 的静态编译

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值