qt 5.12.11 静态编译qt 源码
前言:qt 做好应用程序 安装卸载程序基本都基于第三方的软件 比如 nsis 和 inno setup 但是这个第三方软件自定义程度不够高还要学习语法,所以想自己用qt 实现,qt 的安装程序 要依赖 qt dll 我是通过自解压程序实现的WINRAR自解压实现但是卸载程序要拷贝到临时目录也要实现WINRAR 太麻烦所以就采用静态编译 这样编译出来的exe 体积会大 但是不需要qt的那些依赖的,已
前言:
qt 做好应用程序 安装卸载程序基本都基于第三方的软件 比如 nsis 和 inno setup 但是这个第三方软件自定义程度不够高
还要学习语法,所以想自己用qt 实现,
qt 的安装程序 要依赖 qt dll 我是通过自解压程序实现的
WINRAR自解压实现
但是卸载程序要拷贝到临时目录也要实现WINRAR 太麻烦
所以就采用静态编译 这样编译出来的exe 体积会大 但是不需要qt的那些依赖的,已经编译到exe中了
1.下载qt的源码
qt-everywhere-src-5.12.11.zip
2. 安装需要的依赖工具
2.1 ruby
https://rubyinstaller.org/downloads/
安装完成 ruby -v 有版本就可以
2.2 python
自行下载
安装完成python.exe 有版本就可以
2.3 ActivePerl
https://www.activestate.com/products/perl/downloads/
直接cmd 管理员权限 按照官网说的命令句就行
perl.exe -v 有版本输出就可以
3.编译源码
我是用的vs +qt 所以编译vs版本 mingw的就不介绍了
3.1 先修改配置
进入源码目录 qt-everywhere-src-5.12.11\qtbase\mkspecs\common
编辑 msvc-desktop.conf
把 md 改为 mt
D的意思是动态编译(dynamic),T的意思是静态编译(static)
3.2
建立一个 存放qt编译后的目录 C:\Qt_static\build
然后 在 vs 的cmd 中 执行
configure.bat -static -prefix “C:\Qt_static\build” -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
3.3
等执行完成 没问题的话
执行 nmake
这个时间比较久 要一个多小时吧
3.4 执行 nmake -install
执行完成后 目录下就出现 qmake 的 exe 了
4.使用新的qmake 编译
如果你是使用 qtcreate 就 新建个 kit, qt version 选择 编译出来的qmake
如果是vs + qt, 就把qt的version 加上新的qmake的路径
然后 把c++ -> 代码生成 -> 运行库的 /MD 改为 MT
否则会出现qt的链接错误
这样编译出来的exe 10M 左右, 没有qt的dll 也可以运行了
注意
如果你想要你的exe,可以使用https 需要openssl 的支持,默认这样搞是用不了的
增加openssl支持静态编译qt
更多推荐
所有评论(0)