wangchenxicool

博客园 首页 联系 管理

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+个小时。

posted on 2012-07-28 23:56  wangchenxicool  阅读(267)  评论(0)    收藏  举报