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”]
- 开始
- Microsoft Visual Studio 2010
- 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如再使用过程中遇到异常,则参看:
配置完毕后 可复制上面的内容粘贴到这个静态编译QT4.7的控制台里面
然后回车。
选o,回车
选y,回车
等待配置完成(很快)。
[wptabtitle]四、编译链接[/wptabtitle]
输入nmake回车
[wptabtitle]五、静待个把钟头[/wptabtitle]
直到编译完毕。
就在这静待的个把钟头里面,我的浏览器不知道被谁关掉了,于是我输入的内容全没了——因为sogou浏览器的快速模式估计有些javascript不能用,自动保存的数据起不到回复内容的作用,原文章是靠记忆十分气馁地恢复的,所以,比较简单。
4.7的release版和beta版的静态编译的步骤不一样,我也摸索了一下。
后来,老蔡又经历了几次重新编译,补充了一些配置,给自己记录,给大家参考。
[wptabtitle]六、清理中间文件[/wptabtitle]
最后别忙退出控制台,输入nmake clean回车
清理中间文件。
清理完毕后,占用空间7.41 GB