一、静态编译原因
在开发Qt时,动态编译会依赖许多的库,在其它机器上不能直接运行;而静态编译则直接以一个.exe解决。
本文参考众多网友Qt静态编译的方法,经过整整一天的编译,终于成功,过程如下。
二:下载所需文件
在网址 http://www.qt.io/download-open-source/#section-3 下载安装 Qt 5.4.0 for Windows 32-bit (MinGW 4.9.1, 852 MB)。
在网址 http://download.qt-project.org/archive/qt/5.4/5.4.0/single/ 下载Qt5.4.0源码
百度下载安装 Python
三:开始编译
1、添加环境变量
添加include路径为:D:\Qt\Qt5.4.0\Tools\mingw491_32\i686-w64-mingw32\include
添加lib路径为:D:\Qt\Qt5.4.0\Tools\mingw491_32\i686-w64-mingw32\lib
添加path路径为:D:\Qt\Python33
如果以前机器装有VS20XX等软件,最好把环境变量中的include 和lib先删除掉,否则configurfe时可能会报错:
error:redeclaration of C++ built-in type 'wchar_t' [-fpermissive]
2、静态库设置
进入Qt安装目录下:D:\Qt\Qt5.4.0\5.4\mingw491_32\mkspecs\win32-g++,打开qmake.conf,
设置QMAKE_LFLAGS和QMAKE_LFLAGS_DLL为static属性
3、解压Qt源码;然后点击Home键,进入Qt5.4.0\Qt\Ming GW4.9(32位),打开Qt5.4.0 for Desktop的DOS环境。
4、进入Qt源码的目录,输入如下命令:
configure -confirm-license -opensource -prefix "D:\Qt\Qt-rel-static" -debug-and-release -static
-platform win32-g++ -opengl desktop -no-angle -nomake examples -nomake tests -skip qtwebkit
解释一下上面的命令:
-opensource 编译和链接开源版的Qt.
-prefix "G:\Qt\Qt5.3.1" 最后装到目录G:\Qt\Qt5.3.1
-debug-and-release 编译debug版本和release版本
-static静态编译
-platform win32-g++ 目标平台,win32
-opengl desktop 选择desktop的opengl
-no-angle
-nomake examples 不编译examples
-nomake tests不编译tests
-skip qtwebkit 不编译qtwebkit
5、mingw32-make
6、ming32-make install
(以上两个步骤至少需要4个小时,如果觉得太漫长,可以将 -debug-and-release 改为 -release,就不静态编译Debug模式的可执程序了)
四、添加静态库
1、打开Qt Creator,选择 Tools->Options->Build & Run->Qt Versions,在Manual里:
添加Version name为:Qt 5.4.0(Qt5.4.0),
添加qmake location为:D:\Qt\Qt5.4-rel-static\bin\qmake.exe,然后点击Apply
2、点击Kits,在Manual里添加:
添加Name为:Qt5.4.0-static,
添加Qt ersion为:Qt 5.4.0(Qt5.4.0),然后点击Apply,配置完成。
之后就可以创建静态编译的工程了,或者在编译时选择静态编译。