程序地带

windows下使用mingw和msvc静态编译Qt5.15.xx


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终端代替。image-20210117235423970


切换到Qt源码路径,执行命令:


image-20210118000101580


configure.bat -static -prefix "D:QtQt5.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:QtQt5.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(电脑支持的线程数)爽歪歪。


image-20210118001222029


Qt自带的jom编译器路径是 D:QtQt5.14.2ToolsQtCreatorinjom.exe,如果不能识别jom命令请添加路径到环境变量。如果是旧版本的Qt可能没有带jom,此时可以从Qt官网下载:


官方路径:http://download.qt.io/official_releases/jom/
清华国内镜像:https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/jom/

接下来执行 nmake & nmake install(使用jom的话用 jom -j xx &jom -j xx install代替)


image-20210118000823503


接下来就是漫长的等待,最后编译好的Qt版本在 -prefix 设置的目录下,本人16线程全开,make的时间是20多分钟,但是install的时间很长,可能是没加 -j 参数的原因?


mingw编译


打开Qt的mingw命令行工具,
image-20210118002414865


切换到Qt源码路径,执行命令:


configure.bat -static -prefix "D:QtQt5.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网上的教程很多,这里就不做搬运工了~


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wzxNote/p/14290907.html

随机推荐

jdk1.8 ConcurrentHashMap

jdk1.8的ConcurrentHashMap的实现中,构造方法主要是对内部的大小进行设置。publicConcurrentHashMap(intinitialCapacity,flo...

究极机器 阅读(719)

dataframe建一个空的_旅游团建

dataframe建一个空的_旅游团建

旅游团建,博灏教育优点多,博灏教育自成立以来一直以社会教育与企业培训为己任,博灏公司坚持每次活动均针对学员的年龄、性别、素质、文化背景和体能等条件以及活动目的...

骑乌龟追骆驼 阅读(213)

手机音频拼接软件_小巧好用的大师级手机神器

点击蓝字,关注我们这是一款非常好用的手机神器软件,建议把这款轻量级的软件安装在你的手机上,这款只有12.1M大小的软件,可以帮你解决以下操作&#...

weixin_39839968 阅读(881)

Pyecharts v0.5.x和v1.0.x的区别

版本v0.5.xv1.0.x支持python版本python2.7,python3.5-python3.6+状态官方不在维护维护ing差异主题地图插件废除插件,支持...

fxflyflyfly 阅读(139)