Qt默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:
配置编译选项
打开
%QtDir%\mkspecs\win32-g++\qmake.conf (%QtDir%为Qt库所在目录)
在QMAKE_LFLAGS后面加上
-static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
并将QMAKE_LFLAGS_DLL后面的
-shared 改为 -static
保存并关闭
打开
%QtDir%\src\corelib\tools\qlocale.cpp 把 #include <float.h> 改为 #include <%MinGw%/include/float.h> 例如:#include <E:/Program Files/MinGW/include/float.h>
Win + R 打开运行输入 cmd 打开命令行,切换到Qt库的目录下,输入命令: configure -static -debug-and-release -no-exceptions
根据提示输入:o 确认
然后输入:y 确认
上一条命令运行成功后再输入命令:
mingw32-make sub-src
等待3个多小时之后....编译完成。
如果上面的编译命令不加 sub-src 会全部编译,把Demo都编译了,大概得用10+个小时。