Qt 5.8.0在msvc2015方式下的静态编译记录
本次记录把Qt5.8.0源码在msvc2015community版下静态编译的过程。
- 1、准备工作
- 2、配置Qt的Makefile文件
- 3、编译Qt库
- 4、配置Qt库
- 5、配置Qt Creator
第一步:准备工作
- 下载Qty库源码
在Qt官网上下载相应版本的Qt库源码。因为电脑上安装的是VS2015community,所以下载名为For Windows users as a single zip file (565 MB) (Info)
的文件。
- 下载Python
- 下载Perl
- 下载Ruby
注意:
1.Ruby要选择安装包版本
2.安装Python、Perl、Ruby时注意勾选添加到环境变量PATH
3.检测是否安装成功:打开CMD
输入python
输入perl -v
输入ruby -v
第二步:配置Qt的Makefile文件
- 下载的Qt源码解压到磁盘根目录:如
G:\
注意:如果源码解压路径过长,将导致编译qtimageformats时出现无法打开编译器生成的文件“”:Invalid argument的错误。
我的解压路径为:G:\qt_src_5_8_0
-
进入解压后的Qt源码文件夹下的
G:\qt_src_5_8_0\qtbase\mkspecs
文件夹下。 -
再根据你安装的Qt版本进入相应的文件夹下,我这里是
win32-msvc2015
。
-
打开文件夹下的
qmake.conf
文件,根据它include的内容再定位到相应的文件。我这里是上级文件夹下的common目录下的msvc-desktop.conf文件。
- 打开对应的文件后,找到以下编译标志:
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd
将其中的MD全部修改为MT(就是将动态编译修改为静态编译):
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd
注意:
Qt5.8.0有一个CPP文件
qtbase\src\plugins\generic\tuiotouch\qtuiohandler.cpp
包含了非ASCII字符,需要另存一个带BOM的UTF-8编码文件,替换原文件。否则编译会报错。
-
打开VS自带的命令提示符,在开始菜单中找VS2015的文件夹。
-
在命令提示符中进入Qt源码目录
G:\qt_src_5_8_0
。
-
输入Configure命令:
configure -confirm-license -opensource -debug-and-release -static -force-debug-info -prefix "G:\msvc2015_static" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -nomake tests -nomake examples
其中"G:\msvc2015_static"
代表编译完后的安装目录,此目录不需要事先存在。这个执行不会花费很久时间。没有报错就下一步。
第三步:编译Qt库
- 执行nmake命令。
注:此步大约会进行两到三个小时。
- nmake执行完毕之后,再输入nmake install安装。这个安装实际上是一连串的文件复制。
注:此步大约会进行二十到三十分钟。
- 执行完成后没有报错说明安装成功,
G:\msvc2015_static
文件夹中即为生成的Qt静态库。
第四步:配置Qt库
(未完待续……)