QT4.6.1+MinGW在windows中静态编译(2010.02.01亲测)

MicroSky2813 2010-02-01 06:46:08
最近LGPL协议与Qt版的开放,Qt开始流行,Qt的静态编译(就是只生成.exe不需要dll)也开始被人注意,好像没有专门的教程,问的人也不少,就专门写了这么个东西


Qt版本4.6.1 从官网下的2010.01SDK

第一步:<QTDIR>\mkspecs\win32-g++\qmake.conf:这个文件里找这行(win32-g++代表环境,其他环境就用其他文件夹里的 )
QMAKE_LFLAGS=-enable -stdcall-fixup-Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
用#注释掉
加这句(其实就是改成这句了)
QMAKE_LFLAGS=-static -static-libgcc -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

第二部:Qt/qt里有configure.exe
用命令行加参数调用
configure -release -static -fast
里面有选择 o是开源选择 然后确定
mingw32-make
进行编译
注:这一步相当耗时。我i7的小本用了两个多小时。

第三步:mingwm10.dll问题
用到threads时候才用mingwm10.dll,所以不用的话就可以在项目里的makefile.release里LFLAGS= 去掉-mthreads

最后 ,就可以用了 ,还有请注意LGPL协议
注意mingw的环境变量
做完后也不要忘记QTDIR PATH的环境变量



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/MicroSky2813/archive/2010/02/01/5278096.aspx
...全文
387 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
MicroSky2813 2010-02-01
  • 打赏
  • 举报
回复
刚做的helloworld成功了。
另: 怎么测成没成功呢?把环境变量PATH设成“;”再去打开.exe就行了,注意别忘备份PATH
MicroSky2813 2010-02-01
  • 打赏
  • 举报
回复
Qt从4.5开始采用LGPL协议:可免费的用于商业开发,前提是不将Qt静态链接到商业程序中。

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧