简介
因为 Qt 大部分模块我没有需求,所以想着自己编译一个只有基础模块的 Qt
环境准备
- Visual Studio 2019
- jom 1.1.4
jom 用来多核编译,加快编译速度,如果不需要也可以使用 nmake 编译
编译配置
下载 qt-5.15.2 源码,可以在qt官网下载,也可以在各个镜像仓库中下载,解压源码,进入源码根目录
启动 MSVC 环境终端:打开 cmd,然后执行 vcvars64.bat 批处理文件,配置 MSVC 环境变量,我这里执行的是 64 位的,如果有需要也可以执行 32 位的
然后配置 jom 环境变量,打开的终端中输入
set PATH=E:\software\Jom;%PATH%
其中 "E:\software\Jom" 路径换为自己 jom 的路径
至此,环境配置完毕,执行源码根目录下的 configure.bat 开始 Configure
configure.bat -shared -prefix F:\workenv\msvc\qt5 -opensource -confirm-license -debug-and-release -platform win32-msvc -make-tool jom -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtlottie -skip qtmacextras -skip qtmultimedia -skip qtnetworkauth -skip qtpurchasing -skip qtquick3d -skip qtquickcontrols -skip qtquickcontrols2 -skip qtquicktimeline -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtsvg -skip qttools -skip qttranslations -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebglplugin -skip qtwebsockets -skip qtwebview -skip qtwinextras -skip qtx11extras -nomake examples -nomake tests -c++std c++11 -no-dbus -no-opengl -qt-zlib -qt-libpng -qt-libjpeg -qt-pcre
- -platform win32-msvc:设置平台为 MSVC
- -make-tool jom:设置构建工具使用 jom,如果不使用 jom 不加这个选项
- -skip:跳过模块,就是源码根目录下的所有 qt 开头的文件夹,这里只编译了 qtbase
- -no-opengl:设置不支持 opengl,因为目前我不需要用到,如果需要用到不要设置这个
其余选项都可以从 config_help 中查看,正常执行完毕后就可以开始编译了
编译
如果是使用 jom 构建,则
jom /j N
ps:N 为使用的核心数
如果不是使用 jom 构建,则
nmake
等待编译结束
安装
不管用不用 jom 都可以使用 nmake 安装
nmake install
我用 jom install 来安装时,会有遗漏安装的库,所以我就是使用 nmake 来安装
总结
以上就是本次编译 MSVC Qt 源码的全部过程,后面有时间把 Mingw 和 linux-g++ 的 Qt 源码编译也写出来,如果有什么其他问题,欢迎讨论