qt 静态编译 -- 生成exe单文件 别的电脑可以直接用
qt 静态编译 收集
https://github.com/last2win/qt-5.13
Qt最新版5.13在Windows环境VS 2017 64位静态编译完成的结果
此仓库很大,建议直接下载压缩包
具体的添加到Qt Creator的过程参考我的博客:Qt最新版5.13在Windows环境静态编译安装和部署的完整过程VS 2017
1
Qt最新版5.13在Windows环境静态编译安装和部署的完整过程(VS 2017/VS 2019)
https://blog.csdn.net/zhangpeterx/article/details/91952129
为什么要静态编译
在默认情况下,用QtCreator编译程序时,使用的是动态编译。编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件。如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,那就需要使用静态编译。Qt官方不提供静态编译好的安装包,所以需要我们在自己的电脑上静态编译。而且exe文件会比动态编译的要小上很多。
1.源码下载
Qt最新版5.13.0的源码下载地址:Index of /archive/qt/5.13/5.13.0/
2019-6-18: Qt 5.13.0版本出来
编译环境选择
在Windows上,有两个预构建环境可供选择:一个是MinGW,另一个是Microsoft Visual Studio(MSVC)。这两个环境不兼容,无法混合。你必须选择一个。
这两者的区别如下:
当你的项目使用MinGW编译的使用,想要用一个MSVC编译生成的库时就会有问题。使用MinGW编译项目的时候,所使用的Lib也要是MinGW编译的。如果你只是开发Window平台的软件时,最好用Qt MSVC组合,这样可以使用大量的第三方lib,还有很多的构建指令,毕竟window上MSVC才是王道。
我选择MSVC,打开安装VS时自带安装的MSCV:VS 2017的开发人员命令提示符
安装完成后,QT的文件夹有2.98G的大小
4.添加到Qt Creator
这里需要说明一下,Qt Creator现在已经不能直接下载最新版本,需要在线安装:Index of /archive/online_installers/3.1
下载后安装最新版的Qt Creator4.9
①添加Qt Versions:
②新建一个构建套件,Qt版本选择刚添加的静态版,其他选项与动态版相同即可。
https://www.bilibili.com/video/av40274962/
Dalao们多多指教
清华开源软件镜像站版本直达
https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/qt/
静态链接库(5.9.3版本)
链接:https://pan.baidu.com/s/1qqtD6bP-9B2oXrEN7-FHPg
提取码:comd
其他QT版本静态链接库(5.4.2-5.8.0)
链接: (已失效)
2
如果移动了QT SDK的安装目录,即编译后的SDK发送给别人使用,或者修改了SDK的目录名称等等,则需注意会各种报错,这是因为qt 将路径硬编码到了qmake.exe中, 但是会优先寻找qt.conf ,如果有就使用qt.conf中配置的路径,没有则使用默认路径,在新编译的Qt版本bin目录下缺少配置文件qt.conf,我们把msvc2017_64\bin\qt.conf配置文件,拷贝一份到msvc2017_32\bin目录下目录下即可:也可以自己手动在qmake目录下新建一个qt.conf文件,注意,编码一定要ANSI格式,不能用UTF-8。路径分隔符用"/"或“\”)。
[Paths]
Prefix=..
静态编译如果提示:: error: LNK1181: 无法打开输入文件“C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\winspool.lib”,则需要安装对应版本的windows SDK。因为别人静态编译依赖的此SDK。安装SDK到报错所在目录。同时要看清楚别人分享的编译版本是Debug还是Release,还是两个版本都包含的,要不然别人只提供的编译的Release版本,你往死里编译Debug版本不报错才怪。
他人编译的各种版本(所有版本:只有Release!!!!!!!!)
https://sourceforge.net/projects/fsu0413-qtbuilds/files/
https://github.com/Fsu0413/QtCompile
可以直接 双击启动,不用打包 类似MFC 静态编译生成的exe文件
第一次启动的时候,会比较慢
3
https://github.com/last2win/qt-5.13
Windows Kits\10\lib\10.0.17763.0\um\x86\winspool.lib
从如下目录复制过来的
C:\Program Files (x86)\Windows Kits
release 和debug 都可以
3
. 静态编译
优点: 发布简单,单一文件,在移植时如果空间足够,采用静态编译比较可靠
缺点: 库文件很大,更新程序版本不方便。每次升级,都要重新分发所有的内容。
对QT而言,需要重新编译静态库(非常耗时),且插件的使用比较麻烦http://hi.baidu.com/cyclone/blog/item/25b262d9337a172310df9b78.html
要查询应用程序关联的库,可用命令 ldd ./application
- 生成有图标的exe文件
QT Creator虽然可以轻松地设置窗口的小图标,但并没有提供设置exe文件图标的功能。
其实做起来并不难。
·首先当然要准备一个.ico图标文件(假定为myIcon.ico),将其复制到工程目录当中(.pro文件所在的目录)。
·然后在QT Creator中Ctrl+N或 File --> New File or Project
选择General中的Text File
名称填写为.rc文件(如myRc.rc)
在里面只用写一行:
IDI_ICON1 ICON DISCARDABLE “myIcon.ico”
·编辑.pro文件,里面应该有:
OTHER_FILES+= \
apprc.rc
在其下再添加一行(如果没有上面的内容也没事):
RC_FILE =
myRc.rc
·最后编译一下就好了,新生成的exe文件的图标就会变成myIcon.ico的样子
qt 静态编译 -- 生成exe单文件 别的电脑可以直接用相关推荐
- python爬取有道词典_利用Python3和Charles爬取有道词典,生成翻译exe单文件
感觉挺好玩的,所以就转了,但我也做了定制化. 原文: 一.用Charles爬取数据(Windows用Fiddler也差不多) Charles是一个多平台的抓包工具,可以很方便的抓取http和https ...
- Qt 静态编译(5.15.2 MinGW 32-bit)
Qt 静态编译(5.15.2 MinGW 32-bit) 文章目录 Qt 静态编译(5.15.2 MinGW 32-bit) 摘要 1 编译前准备 1.1 编译环境准备 系统环境 Qt 版本 gcc ...
- 拿来主义——QT静态编译配置
如何快速完成QT静态编译的配置(windows)↓↓↓ 0.写在前面 1.下载原版QT 2.开始"拿来"--下载别人编译好的 2.1检查自己的QT路径 2.2下载已经编译好的QT ...
- windows下 Qt 静态编译
似乎一直没有静态编译Qt的需求:一不在没有管理员权限的机器上使用,二不制作绿色软件,三....动态编译工作得很好,再配合 nsis 制作一个安装包,有什么必要静态编译呢? 但论坛中似乎总是不停有人问到 ...
- linux下qt静态编译_自由出土文物的空间_百度空间
linux下qt静态编译_自由出土文物的空间_百度空间 linux下qt静态编译_自由出土文物的空间_百度空间 linux下qt静态编译 2012-04-09 13:10 测试通过,贴一下过程,仅用来 ...
- 裸奔真的会中木马病毒 挖矿病毒 wup.exe 程序文件占用电脑资源
4日晚上,打开任务管理器的时候发现CPU使用一直在80%,是 wup.exe 占用的,同时还占用了2G内存,低优先级运行,用户名 SYSTEM,很不正常,于是开始排查. 发现这玩意是上午十点左右中的, ...
- Qt 5 打包成一个单文件方法,可以在其他电脑运行(附资源)
前言: 如果你在Qt打包执行后,遇到下面的问题,或各种报错,那么这篇文章可能会帮助你解决这个问题. 正文: 1. 打开Qt Creator,打开项目,在左下角的构建方式中选择 " Relea ...
- PC版马赛克拼图生成 AndreaMosaic单文件版!
带来一款国外的AndreaMosaic v3.35.7 单文件版,这软件用于马赛克拼图效果生成,大家可能看到过无数张小图合成一张大图效果图片,看起来很有用艺术感,可是大家不知道怎么弄的,其实用这个软件 ...
- InstallShield 2015 打包vs2015编辑的.net程序 生成setup单文件
1年前用过InstallShield,已经好久没有使用了, 现在发现一片文章不错,特意转载一下 我使用的是vs2015 当年看的教程已经找不见了 该教程测试过没有问题~~ VS2012没有自带打包工具 ...
最新文章
- 电子商务网站比较常用的缓存策略架构
- 机器学习的5个成功案例
- 【Linux 内核】线程调度示例一 ③ ( 获取线程优先级 | 设置线程调度策略 | 代码示例 )
- 基于struts2的寝室圈项目
- 程序员面试题精选100题(60)-判断二叉树是不是平衡[数据结构]
- Markdown:数学公式练习(3)
- 【Boost】boost库中thread多线程详解12——线程的分离与非分离
- leetcode-136. 只出现一次的数字解法
- 介绍一种找bug的方法
- elif是不是java关键字_C# 中的#if、#elif、#else、#endif等条件编译符号 (转载)
- 拜托,Java。 最终是否支持多行字符串文字
- Python实例讲解 -- 发送邮件带附件 (亲测)
- 还是TFS的问题,包括源代码管理和甘特图操作
- 背包问题回溯法c语言程序,C语言回溯法解决背包问题
- OD教程(汇编基础)
- EDI集成对业务的重要性
- 网络代理【1】什么是网络代理
- 中科大计算机考研录取分数线_2017计算机专业学校考研难度排行榜,计算机考研难度排名...
- Matlab学习记录-矩阵的生成
- 使用SnowNLP对影评进行情感分析