最近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的环境变量

本文档详细介绍了如何在Windows上使用MinGW静态编译Qt 4.6.1,使得最终生成的.exe文件无需依赖外部dll。首先修改<QTDIR>/mkspecs/win32-g++/qmake.conf,注释掉原有行并添加新行以启用静态链接。然后通过configure.exe进行配置,添加静态编译参数,并进行编译。需要注意的是,如果不使用-mthreads,可以避免对mingwm10.dll的依赖。最后,确保遵循LGPL协议,并设置好QTDIR和PATH环境变量。
最低0.47元/天 解锁文章
1765

被折叠的 条评论
为什么被折叠?



