Qt应用静态编译,静态链接,去mingwm10.dll,libgcc_s_dw2-1.dll依赖问题
来源:互联网 发布:天刀win10卡顿优化 编辑:程序博客网 时间:2024/06/05 15:21
完全了解逻辑层次os/compiler/framework/application中静态链接、动态链接情况的,请绕道。
linux以及Xnux的大牛,也不用看了。
要想Qt应用做出来只是一个exe就能给客户运行,
有两个情况,搞定即可:
一、mingwm10.dll,libgcc_s_dw2-1.dll依赖
这与qt无关
用vc编译的就不存在……依赖这俩玩意的情况。
那么mingw版下的QT呢?
下载,静态版mingw(mingw本身和gcc都是static version)即可,见文末资源。
二、QtCoreX.dll QtXXX.dll等依赖
指定你的应用本身为静态编译即可。
1、project.pro添加QMAKE_LFLAGS=-static,
2、qt本身是静态版编译的,步骤见文末资源。
以上俩条件都需要,虽然qt静态版的,不用满足1即可,但是
逻辑上工程层次得指定,否则假设你是开源的,
别的兄弟拿过去编译,可能有些入行不久的会问为什么他的编译出来的不是一个文件了,呵呵。
而且你保不定自己就一直只有一套qt在跑,我就是静态动态版的都在用。
资源
--------------------------------------------------------------------------------
1、mingw静态编译版本:
有牛人http://code.google.com/p/qp-gcc/ 已经做好了,
http://code.google.com/p/qp-gcc/downloads/detail?name=mingw-static-4.4.5-all.7z
这个,下载覆盖$QTDIR/../mingw就行,实在不信任我的,覆盖前先备份,就没风险了。
mingw和gcc编译是件不简单的事,
至少我觉得比qt编译复杂,特别是mingw的那一堆工具和补丁,
编译器和编译原理一直是心中的痛啊,啊啊啊。
2、qt静态编译步骤,这里有(注意评论,有更实用的做法提出来):
http://blog.csdn.net/MicroSky2813/archive/2010/02/01/5278096.aspx
p.s
至于第三种情况,msvcrt.dll 貌似winnt都带着吧,不用管。
kener32.dll?介个……
然后就是LGPL涉及静态链接版权问题
我个人比较认同“涉及LGPL库的开源,没涉及的可以不开,后者调用前者的部分提供obj”说法。
那么,Qt应用,用wrapper策略吧:
http://devbean.blog.51cto.com/448512/313477
好吧,聪明人会问,编译环境依赖,如mingw10.dll和libgcc_s_dw2-1.dll我看你怎么wrapper?
就已有资料看,这俩已经public domain了。
再啰嗦两句,release之前,用upx把你的exe压缩一下,尺寸更小,而debug版……就别了。
最后,希望受dll依赖问题烦扰的,能明白本文第一句。
- Qt应用静态编译,静态链接,去mingwm10.dll,libgcc_s_dw2-1.dll依赖问题
- libgcc_s_dw2.dll静态链接
- _Z5qFreePv mingwm10.dll,libgcc_s_dw2-1.dll 相关问题
- CLion+MinGW CMake进行静态链接,解决程序出现缺少libgcc_s_dw2-1.dll问题
- 解决QT静态编译和debug库问题(mingwm10.dll丢失、collect2:ld returned 1 exit status)
- 关于MinGW GCC编译C++程序动态链接到libgcc_s_dw2-1.dll的问题
- 怎样解决Qt编译出的程序运行时缺少libgcc_s_dw2-1.dll 文件的问题?
- libgcc_s_dw2-1.dll
- MFC DLL静态链接
- MFC DLL静态链接
- QT编译后运行丢失mingwm10.dll原因
- 解决Qt release版本找不到mingwm10.dll的问题
- 关于MinGW编译程序出现缺少libgcc_s_dw2-1.dll问题
- VC6编译输出DLL和静态链接库LIB
- 用静态Qt库编译DLL的方法
- Qt Creator默认是用动态链接修改的文件--表示缺少mingwm10.dll文件
- 生成dll文件,动态链接,静态链接
- 动态链接DLL与静态链接LIB
- 简单数据库操作
- 简单ListCtrl
- 其它常用
- 没有完美的人所有才没有完美的机器
- 先进制造视频集
- Qt应用静态编译,静态链接,去mingwm10.dll,libgcc_s_dw2-1.dll依赖问题
- JAVA执行脚本
- WPE软件为什么现在不能刷传奇天关
- linux帮助的使用
- linux的文件系统
- linux基本命令(1)
- 传说中的SQLHelper
- struts2标签解释
- 忘掉蜗居努力10000小时