QT4.7在VS2010下纯静态编译

话说这是老蔡去年写的一篇关于静态编译QT4.7.1的文章,而QT现在发行版不断进化中,需要的朋友可以去官网下载,由于老蔡不能保证版本的前沿性,所以暂不给出更新的链接。当时,老蔡将这篇文章发于一个群里面的朋友开的qtsir社区,而这个社区现在不景气了,固特意将文章转过来,以备不测。

[wptabs color=”wpui-light”

effect=”fade”]

注意:QT4.7.3版本占用空间清理前已接近26G,清理后已增加到18.0 GB。注意保留足够的空间,避免因此导致的编译失败。[/wptabs]

“纯静态编译”是我杜撰的一个词,意思就是不带dll,直接给别人运行程序就能用。

下面是步骤

[wptabtitle]一、下载QT源码包[/wptabtitle]

[wptabs color=”wpui-light”

effect=”fade”]

QT 4.7.0源码包地址:

http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.zip QT 4.7.4源码包地址(老蔡2011.10.9加入):

http://download.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.4.zip [/wptabs]

解压到一个文件夹。

打开mkspecs目录,找到win32-msvc2010目录进入(如果不是VS2010,可改为自己的版本)

用记事本打开qmake.conf文件,更改MD为MT,更改MDd为MTd。

预留25.3G,最好26G空间,我nmake完毕后,查看大小,是25.3G,难免其间还有其他中间文件生成,最好多留一点。

[wptabtitle]二、配置环境变量[/wptabtitle]

在PATH环境变量中添加:”E:QtQT-4.7.0”

添加新的环境变量,名字为”QMAKESPEC”,值为”win32-msvc2010”

添加新的环境变量,名字为”QTDIR”,值为”E:QtQT-4.7.0”

[wptabtitle]三、设置配置[/wptabtitle]

先打开VS2010命令行形式,步骤如下[wptabs color=”wpui-light”

effect=”fade”]

  1. 开始
  2. Microsoft Visual Studio 2010
  3. Visual Studio Tools-Open Visual Studio Command Prompt (2010)

[/wptabs]

然后cd到源代码所在文件夹。

输入[wptabs color=”wpui-light”

effect=”fade”]

configure -platform win32-msvc2010 -debug-and-release -static -fast -qt-sql-odbc -qt-sql-sqlite[/wptabs]

补充:有人说加入-nomake demos -nomake examples可以大大缩短编译时间,即[wptabs color=”wpui-light”

effect=”fade”]

configure -platform win32-msvc2010 -debug-and-release -static -fast -qt-sql-odbc -qt-sql-sqlite -nomake demos -nomake examples[/wptabs]

2011.10.9加入:

默认静态编译是不支持OpenSSL的,这样就对HTTPS协议起不到支持的作用,所以,如果有支持SSL协议的需要,则要加入-openssl,如下[wptabs color=”wpui-light”

effect=”fade”]

configure -platform win32-msvc2010 -debug-and-release -static -fast -openssl -I “E:QTopenssl-1.0.0einclude”

-l “E:QTopenssl-1.0.0eout32dll”

-qt-sql-odbc -qt-sql-sqlite[/wptabs]

路径不尽相同,请童鞋们参照自己的情况修改。OpenSSL需要自己下载并安装。

1.0.0e版OpenSSL地址如下:

http://www.openssl.org/source/openssl-1.0.0e.tar.gz OpenSSL如再使用过程中遇到异常,则参看:

静态编译(static)的QT下OpenSSL异常的问题

配置完毕后 可复制上面的内容粘贴到这个静态编译QT4.7的控制台里面

然后回车。

选o,回车

选y,回车

等待配置完成(很快)。

[wptabtitle]四、编译链接[/wptabtitle]

输入nmake回车

[wptabtitle]五、静待个把钟头[/wptabtitle]

直到编译完毕。

就在这静待的个把钟头里面,我的浏览器不知道被谁关掉了,于是我输入的内容全没了——因为sogou浏览器的快速模式估计有些javascript不能用,自动保存的数据起不到回复内容的作用,原文章是靠记忆十分气馁地恢复的,所以,比较简单。

4.7的release版和beta版的静态编译的步骤不一样,我也摸索了一下。

后来,老蔡又经历了几次重新编译,补充了一些配置,给自己记录,给大家参考。

[wptabtitle]六、清理中间文件[/wptabtitle]

最后别忙退出控制台,输入nmake clean回车

清理中间文件。

清理完毕后,占用空间7.41 GB