下载QT源码
1.离线安装
安装的时候勾选Sources
2.直接下载源码
例如5.12.0的源码下载地址:qt-everywhere-src-5.12.0
2. 编译工具下载
ActivePerl
ActivePerl下载地址:
默认安装时会添加ActivePerl到环境变量。
测试添加是否成功:
Python
下载Python,添加Python到环境变量。
测试添加是否成功:
Ruby
Ruby下载地址:RubyInstaller for Windows
安装时勾选添加到环境变量的选项:
编译环境选择
在Windows上,有两个预构建环境可供选择:一个是MinGW,另一个是Microsoft Visual Studio(MSVC)。这两个环境不兼容,无法混合。你必须选择一个。
这两者的区别如下:
当你的项目使用MinGW编译的使用,想要用一个MSVC编译生成的库时就会有问题。使用MinGW编译项目的时候,所使用的Lib也要是MinGW编译的。如果你只是开发Window平台的软件时,最好用Qt MSVC组合,这样可以使用大量的第三方lib,还有很多的构建指令,毕竟window上MSVC才是王道。
我选择MSVC,打开安装VS时自带安装的MSCV:VS 2017的开发人员命令提示符
编译
打开VS交叉编译控制台,进入源码目录,比如我的: cd E:\Qt\Qt5.13.0\5.13.0\Src
运行目录中的configure.bat
configure -prefix E:\Qt\Qt5.13.0\5.13.0\myDebugQt -debug -shared -opensource -platform win32-msvc2017 -no-optimized-qmake -no-dbus -separate-debug-info -no-opengl -no-dbus -developer-build -no-qml-debug -confirm-license -nomake examples -nomake tests
-prefix [dir] 指定安装目录默认在 E:\Qt\Qt5.13.0\5.13.0\myDebugQt
-debug debug版本
-shared 动态库
-platform win32-msvc2017 平台信息
-no-optimized-qmake 禁用qmake的优化作用
完成后输入
nmake
开始编译大概需要几个小时
完成后输入nmake install,进行编译安装
nmake install
也可以2步一起
nmake install
编译选项
configure.bat 的编译选项
1)-prefix [dir] 指定安装目录默认在;
2)-hostprefix [dir] 指定可扩展的工具库安装路径,默认当前目录;
3) -prefix-install 指定QT的本地安装;
4)-bindir [dir] 指定可执行文件路径 [dir](默认 PREFIX/bin下);
5)-libdir [dir] 指定库文件路径 [dir](默认 PREFIX/lib);
6)-docdir [dir] 指定文档路径 [dir](默认 PREFIX/doc);
7)-headerdir [dir] 指定头文件路径 [dir](默认 PREFIX/include);
8)-plugindir [dir] 指定插件路径 [dir] (默认 PREFIX/plugins);
9)-datadir [dir] 指定QT要使用到的一些数据文件所在路径 [dir] (默认 PREFIX);
10)-translationdir [dir] 指定QT程序的翻译文件路径 [dir](默认 PREFIX/translations);
11)-sysconfdir [dir] 指定QT的设置文件路径 [dir](默认 PREFIX/etc/settings);
12)-examplesdir [dir] 指定实例文件, [dir](默认 PREFIX/examples)
13)-demosdir [dir] 指定demos的安装路径 [dir] (默认 PREFIX/demos);
14)-buildkey [key] 通过指定的key生成QT库和插件;
15)-release 此选项在编译过程QT会对程序进行优化,在发布软件的时候应该用此选项,是默认选项;
16)-debug 加上此选项编译程序QT不会做出优化,往往在开发过程使用此选项;
17)-debug-and-release 编译两个版本;
18)-developer-build 编译Qt的开发商和连接选项(包括自动测试出口的Qt);
19)-opensource 以开源版本发布程序;
20)-commercial 以商业版本发布程序;
21)-shared 创建和使用共享Qt库;
22)-static 创建和使用静态的Qt库;
23)-no-fast 使用通常的Makefile来编译,是默认选项;
24)-fast 快速编译,除了封装必要的库,部分步骤省略或者用快速的方法处理;
25)-no-largefile 禁用大文件支持;
26)-largefile 支持访问大于4GB的文件;
27)-no-exceptions 禁用编译器本身对异常的处理;
28)-exceptions 启用编译器本身对异常的处理;
29)-no-accessibility 、-accessibility 禁用/启用无障碍支持;
30)-no-stl、-stl 禁用/启用STL支持;
31)-no-sql-[driver] 禁用SQL;
32)-qt-sql-[driver] 根据需求启用SQL插件(默认全部关闭);
33)-plugin-sql-[driver] 禁用/启用/启用插件 对SQL的支持;
34)-system-sqlite 启用支持sqlite也可用-qt-sqlite;
35)-no-qt3support 、-qt3support 禁用/启用qt3支持模块;
36)-no-xmlpatterns 、-xmlpatterns 禁用/启用xmlpatterns模块;
37)-no-phonon 、-phonon 禁用/启用Phonon模块(可以理解为声音控制模块);
38)-no-phonon-backend、-phonon-backend 禁用/启用phonon-backend模块;
39)-no-svg、-svg 禁用/启用svg模块;
40)-no-webkit、-webkit 禁用/启用webkit模块(访问网络模块);
41)-no-scripttools 、-scripttools 禁用/启用scripttools模块;
42)-platform target x86平台指定模块 (qws/linux-x86-g++);
43)-qtnamespace [name] 指定所有库代码路径;
44)-qtlibinfix [infix] 重命名所有.so库文件到指定路径;
45)-qt-zlib zlib依赖包;
46)-no-gif 、-qt-gif gif图片支持包;
47)-no-libtiff 、-qt-libtiff tiff支持插件;
48)-no-libpng 、-qt-libpng png图片支持插件;
49)-no-libmng 、-qt-libmng mng支持插件;
50)-no-libjpeg 、-qt-libjpeg jpeg图片支持插件;
51)-no-openssl、-openssl openssl支持插件;
52)-make [part]、-nomake [part] 选择是否编译某些无关紧要的子模块;
53)-continue 忽略错误的编译;
54)-verbose, -v 显示每个步骤的详细信息;
55)-silent 安静的编译省略信息回显;
56)-no-optimized-qmake、-optimized-qmake 禁用/开启qmake的优化作用;
57) -no-nis 、-nis 禁用/开启NIS的支持;
58)-no-cups 、-cups 禁用/开启对CUPS的支持;
59)-no-iconv 、-iconv 禁用/开启对iconv的支持;
60)-no-pch 、-pch 禁用/开启是否使用预处理器头文件;
61)-no-dbus、-dbus 禁用/开启对QTdbus模块的编译;
62)-reduce-relocations 减少因为链接优化而导致的而外的库文件重置
63)-no-separate-debug-info 不将调试信息放在一个文件内;
64)-separate-debug-info 将调试信息放在一个文件内;
65)-no-opengl 、-opengl 禁用/开启对opengl的支持;
66)-no-glib 、-glib 禁用/启用对glib的支持。