QT编译后运行丢失mingwm10.dll原因

当使用MinGW编译的Qt程序在独立运行时,可能出现mingwm10.dll丢失的问题。这是因为Qt默认动态链接库。为避免用户机子上安装额外库,可以通过静态链接解决。步骤包括编辑qmake.conf添加静态链接标志,使用Qt Command Prompt配置为静态编译,然后执行mingw32-make sub-src。虽然静态链接产生的可执行文件较大,但能独立运行且启动更快。
摘要由CSDN通过智能技术生成

    众所周知,dll是动态链接库,只有在需要时才会被程序所调用。

 

 

      MinGW(Minimalist GNU for Windows),又称Mingw32,是将GNU开发工具移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。 MinGW是从Cygwin(1.3.3版)基础上发展而来,但是用MinGW使用Windows中的C运行库。因此用MinGW开发的程序不需要额外的第三方DLL支持就可以直接在Windows下运行,而且也不一定必须遵从GPL许可证。这同时造成了MinGW开发的程序只能使用Win32API和跨平台的第三方库,而缺少POSIX支持[1],大多数GNU软件无法在不修改源代码的情况下用MinGW编译。(来自维基)

 

 

Qt默认是动态链接的,所以在生成的exe里包含minGW库内容(这样可以减少可执行程序的大小)

 

 

在QT Creator点运行可以,但在工程目录下打开exe文件就会提示mingwm10.dll丢失

解决问题也容易,可以在环境变量里加qt/bin;mingw/bin;qt/qmake

但如果这个程序在客户的机子上运行,这样安装太麻烦了

 

 

所以可以使用静态链接在生成的exe加入所有库函数。

 

 

参考这里&

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值