windows下使用mingw和msvc静态编译Qt5.15.xx
-
下载并安装相关依赖软件
- Python version 2.7 https://www.python.org/downloads/ (python2.7.5及以上,pythone3.X不行)
- Ruby version 2.5.3 http://www.ruby-lang.org/zh_cn/downloads/
- Perl version 5.24.3 http://www.perl.org/get.html
- Visual Studio 2017
一般来说下载这三个工具就可以,记得要设置环境变量,当然你要编译MSVC版的安装Visual Studio2017,并且安装它。要编译mingw版本需要已经安装Qt版本。
-
下载Qt官方源码qt-everywhere-src-5.15.xx.zip (根据需要编译的版本进行下载),链接如下
http://download.qt.io/official_releases/qt/5.15/
-
开始编译:
-
msvc2017编译
-
打开vs2017命令行工具,里面配置了vs的环境变量,这里不能用windows自带的cmd终端代替。
-
切换到Qt源码路径,执行命令:
configure.bat -static -prefix "D:\Qt\Qt5.15xx_msvc2017_static" -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp
configure.bat -static //指明是静态编译 -prefix "D:\Qt\Qt5.15xx_msvc2017_static" //指明安装的目录 -confirm-license -opensource //指明是开源版本的qt -debug-and-release //指明需要debug版和release版,可以单独选择release版 -platform win32-msvc //指明使用msvc编译 -nomake examples -nomake tests //不编译样例 -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg //可选插件 -opengl desktop -mp //多核编译
生成makefile文件之后就可以调用make编译器进行编译了,msvc版本的make编译器是nmake。nmake是不支持多线程编译的,单线程编译的话时间长的令人发指,推荐使用Qt在windows下专门的编译器jom,QtCreator使用的就是jom编译器,加上-j xx(电脑支持的线程数)爽歪歪。
Qt自带的jom编译器路径是
D:\Qt\Qt5.14.2\Tools\QtCreator\bin\jom.exe
,如果不能识别jom命令请添加路径到环境变量。如果是旧版本的Qt可能没有带jom,此时可以从Qt官网下载: -
接下来执行
nmake & nmake install
(使用jom的话用jom -j xx &jom -j xx install
代替)
接下来就是漫长的等待,最后编译好的Qt版本在
-prefix
设置的目录下,本人16线程全开,make的时间是20多分钟,但是install的时间很长,可能是没加-j
参数的原因?? -
-
mingw编译
-
打开Qt的mingw命令行工具,
-
切换到Qt源码路径,执行命令:
configure.bat -static -prefix "D:\Qt\Qt5.15xx_mingw_static" -confirm-license -opensource -debug-and-release -platform win32-g++ -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp
,这里不截图了,参数介绍同上,主要是修改编译平台win32-g++
. -
使用jom 编译
jom -j xx &jom -j xx install
-
等待ing,a few moments later... 一个崭新的Qt静态版本诞生了
如何配置编译好的版本到QtCreator网上的教程很多,这里就不做搬运工了~
-