欢迎关注公众号: fensnote

编译Release版本,拷贝依赖库文件

选择Release模式

在QtCreater选择工程的Release编译,编译出Release版本的exe文件;

使用windeployqt.exe命令提取用到的dll库

打开Qt的Mingw的命令行界面:



在命令行中,切换到exe文件所在文件夹,然后执行命令:

windeployqt lock.exe

执行如下,这个命令会把该exe所用到的库文件都复制过来:

E:\qtwork\lock-Release\release>windeployqt lock.exe
E:\qtwork\lock-Release\release\lock.exe 32 bit, release executable
Adding Qt5Svg for qsvgicon.dll
Skipping plugin qtvirtualkeyboardplugin.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Direct dependencies: Qt5Core Qt5Gui Qt5Widgets
All dependencies : Qt5Core Qt5Gui Qt5Widgets
To be deployed : Qt5Core Qt5Gui Qt5Svg Qt5Widgets
Updating Qt5Core.dll.
Updating Qt5Gui.dll.
Updating Qt5Svg.dll.
Updating Qt5Widgets.dll.
Updating libGLESV2.dll.
Updating libEGL.dll.
Updating D3Dcompiler_47.dll.
Updating opengl32sw.dll.
Updating libgcc_s_dw2-1.dll.
Updating libstdc++-6.dll.
Updating libwinpthread-1.dll.
Patching Qt5Core.dll...
Creating directory E:/qtwork/lock-Release/release/iconengines.
Updating qsvgicon.dll.
Creating directory E:/qtwork/lock-Release/release/imageformats.
Updating qgif.dll.
Updating qicns.dll.
Updating qico.dll.
Updating qjpeg.dll.
Updating qsvg.dll.
Updating qtga.dll.
Updating qtiff.dll.
Updating qwbmp.dll.
Updating qwebp.dll.
Creating directory E:/qtwork/lock-Release/release/platforms.
Updating qwindows.dll.
Creating directory E:/qtwork/lock-Release/release/styles.
Updating qwindowsvistastyle.dll.
Creating E:\qtwork\lock-Release\release\translations...
Creating qt_bg.qm...
Creating qt_ca.qm...
Creating qt_cs.qm...
Creating qt_da.qm...
Creating qt_de.qm...
Creating qt_en.qm...
Creating qt_es.qm...
Creating qt_fi.qm...
Creating qt_fr.qm...
Creating qt_gd.qm...
Creating qt_he.qm...
Creating qt_hu.qm...
Creating qt_it.qm...
Creating qt_ja.qm...
Creating qt_ko.qm...
Creating qt_lv.qm...
Creating qt_pl.qm...
Creating qt_ru.qm...
Creating qt_sk.qm...
Creating qt_uk.qm...

如下图,复制过来的文件:



测试一下是否能直接运行,有时可能还是复制不全,那就再根据提示缺少哪一个,找过来哪一个,很幸运,这个可以运行:



这样接下来就可以对这个文件夹进行打包了。

使用Inno Setup打包

Inno Setup是一款国外的免费打包软件,可以把可执行文件exe与其依赖的dll库文件一起打包成一个安装文件(setup.exe)。官网下载请点这里:https://jrsoftware.org/isdl.php

下载安装

下载安装这里就不详细介绍了,windows应用安装基本都一样,一路“下一步”。

安装完成后,开始打包

中间直接使用默认,不需要说明的步骤我就跳过去了。

创建打包脚本:



填写应用信息,包括版本、发布者、网站:



安装目录设置:



选择要打包的文件和文件夹:



安装语言设置:



生成的安装文件配置:



然后就配置结束了:





至此打包脚本配置完成,下面就可以打包了。

开始编译打包

接着上面的步骤:



会提示你是否保存脚本:



编译打包:

打包完成

打包完成,桌面上会生成一个安装文件(exe):

安装测试

就和平时安装 windows一样,一路“下一步”:





安装好会在桌面上创建快捷方式(安装时选择在桌面创建快捷方式),这个没有图标是因为这个程序编译时没有设置图标,双击这个图标运行:



可以正常运行,现在就可以把这个安装包发布,安装到别的电脑上了。

注意:Qt5.7以后的版本都不再支持XP系统。

发布

打包好的文件就可以发给朋友用了!

Qt 应用程序打包成安装文件的更多相关文章

  1. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)

    Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer   Advanced Installer :Free for 30 da ...

  2. python + pyinstaller 实现将python程序打包成exe文件直接运行

    pyinstaller 我们在平常学习使用python的时候经常会自己编写一些小程序来使用,虽然python是跨平台的语言,但是如果我们想要在一个没有python以及很多库环境的电脑上使用我们的小程序 ...

  3. JAVA程序打包成exe文件详细图解

    我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: eclipse ...

  4. 如何将 Python 程序打包成 .exe 文件?

    有不少订阅本公众号的朋友都不是玩 Python,甚至都不是计算机相关专业的,当我给他们一个 Python 程序时,他们是完全不知道该怎么运行的. 于是我想是不是可以将我的程序打包成可执行文件,直接运行 ...

  5. 将 Python 程序打包成 .exe 文件

    1.简介 做了一个excel的风控模板,里面含有宏,我用python的第三方xlwings部署到linux后发现,linux环境并不支持xlwings. Python 程序都是脚本的方式,一般是在解析 ...

  6. 使用exe4j把JAVA GUI程序打包成exe文件时遇到的问题

    1.把项目打包成jar文件时,只要勾选src目录就行了,其他的比如资源文件和jar包是不能添加进去的. 2.在D盘建一个文件夹,最好与项目同名,然后把打包好的jar包放进去,其他资源文件(图片之类的) ...

  7. C# 程序打包成安装项目

    Xaml设置图标https://blog.csdn.net/u014234260/article/details/73648649 winform程序控制面板中卸载显示图标https://blog.c ...

  8. Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结

    最近有对一个Windows应用程序少许维护和修改.修改之后要发布新的exe安装文件,打包exe文件时,遇到了很头疼的问题,还好最后解决了,记录一下. Visual Studio版本:Visual St ...

  9. Swing项目编译成exe,并且打包成安装文件(二)

    前面我们讲到了将Swing项目编译成双击可执行的文件exe,这篇我就教大家怎么把exe打包成需要在电脑安装的那种,首先需要一个工具,Inno Setup 编译器, 下载地址,我这个是汉化版的,双击打开 ...

随机推荐

  1. BFC原理解析

    BFC的概念 块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域. 它是 ...

  2. (三)学习了解OrchardCore笔记——灵魂中间件ModularTenantContainerMiddleware的第一行①的模块部分

    了解到了OrchardCore主要由两个中间件(ModularTenantContainerMiddleware和ModularTenantRouterMiddleware)构成,下面开始了解Modu ...

  3. scala 数据结构(二):数组

    1 数组-定长数组(声明泛型) 第一种方式定义数组 这里的数组等同于Java中的数组,中括号的类型就是数组的类型 val arr1 = new Array[Int](10) //赋值,集合元素采用小括 ...

  4. nginx配置使用, 入门到实践

    1. 本文做自己学习配置使用, 转自: https://mp.weixin.qq.com/s?__biz=Mzg2MjEwMjI1Mg%3D%3D&chksm=ce0dae4df97a275b ...

  5. Linux02 /Linux命令简单使用

    Linux02 /Linux命令简单使用 目录 Linux02 /Linux命令简单使用 1. 远程连接Linux 2. 目录相关操作 3. 简单命令 1. 远程连接Linux 远程连接工具 Xshe ...

  6. Go的100天之旅-02基本语法

    基本语法 Go关键字 下面是Go的25个关键字: break default func interface select case defer go map struct chan else goto ...

  7. CocosCreator之AssetBundle使用方案分享

    前言 Creator2.4 推出了AssetBundle,使得所有平台都有了分包的能力.那么该如何使用这个强大的功能呢?下面介绍一下我个人的用法,仅供参考,水平有限,非喜勿喷. 根据官方文档 指出,之 ...

  8. 微信小程序 springboot nginx 做图片存储 上传 浏览

    微信小程序前端-springboot后端-nginx图片存储 前言 本人小白一名,这是第一次学习微信小程序,特此做个记录. 首先准备nginx做图片存储 选择一个地址存放图片 #我的地址 [root@ ...

  9. Java8线程池ThreadPoolExecutor底层原理及其源码解析

    小侃一下 日常开发中, 或许不会直接new线程或线程池, 但这些线程相关的基础或思想是非常重要的, 参考林迪效应; 就算没有直接用到, 可能间接也用到了类似的思想或原理, 例如tomcat, jett ...

  10. Linux内存参数

    用free -m查看的结果:# free -m         total    used    free     shared buffers     cachedMem:           50 ...