Qt5发布已经有一段时间了,从官网下载的Windows编译版本是基本msvc2010的,Debug版本程序编译有问题,所以尝试了自行编译;开始尝试使用mingw 4.7.2编译Qt5,碰到了内存分配错误,在网上查找未找到有效的解决方案,所以最后转而使用msvc2012编译Qt。
下面是文中源码的目录结构:
D:\SDK\Qt ├─5.0.0 │ ├─msvc2012 │ └─src └─third ├─icu └─openssl-1.0.1c
1. 编译环境准备
下载安装Visual Studio 2012 Express、Windows Kit 8;
2. 编译第三方库
第三方库这里主要用到了icu, openssl,这两个库应该是可选,如果configure的时候不需要,这一步应该可以跳过;安装方法可以查看相关readme文件;
3. 下载Qt5源代码
http://qt-project.org/downloads
4. 配置相关环境变量
下面是自己做的一个批处理文件,使用时需要调整安装包的路径:
@echo Setting Qt Build Env... @CALL "C:\Program Files\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" set QT5_DIR=D:\SDK\Qt\5.0.0 set THIRDPARTY_DIR=D:\SDK\Qt\third set JOM_DIR=D:\SDK\Qt\jom @cd /d %QT5_DIR%\src set INCLUDE=%THIRDPARTY_DIR%\icu\include;%THIRDPARTY_DIR%\openssl-1.0.1c\msvc2012\include;%INCLUDE% set LIB=%THIRDPARTY_DIR%\icu\lib;%THIRDPARTY_DIR%\openssl-1.0.1c\msvc2012\lib;%LIB% set PATH=%CD%\qtbase\bin;%CD%\gnuwin32\bin;%JOM_DIR%;D:\SDK\Perl\bin;D:\SDK\Python27;D:\SDK\ruby-1.9.3-p362-i386-mingw32\bin;%THIRDPARTY_DIR%\icu\bin;%THIRDPARTY_DIR%\openssl-1.0.1c\msvc2012\bin;D:\Program Files\PortableGit\cmd;%PATH% @echo Finished.
5. 根据需要配置生成Makefile文件
打开cmd窗口,运行上一步配置的批处理脚本;使用configure.bat生成Makefile文件:
如果跳过第2步,这里要去掉-icu, –openssl选项;注意-prefix选项,这个是用来配置Qt5编译完成后安装路径的,下面是我的安装路径:
configure -prefix D:\SDK\Qt\5.0.0\msvc2012 -opensource -confirm-license -platform win32-msvc2012 -developer-build -c++11 -icu -opengl desktop -openssl -nomake tests -nomake examples
6. 编译安装Qt5开发库
使用jom工具或nmake编译Qt5,jom可以充分利用多核CPU性能,下方以jom命令为例,可以更换为nmake;
jom是用来编译库文件的,完成后使用jom install命令安装开发需要的文件到-prefix变量设置的目录:
jom
jom install
7. 编译安装Qt5帮助文件
编译安装Qt5是默认是没有编译安装帮助文件的,需要手动编译安装:
jom docs
jom install_docs
遗留问题:
Qt Assistant打不开,这个问题还没有解决,目前查看帮助文档可以在Qt Creator中查看。