1.引言

QT开发完之后,如果直接把exe文件发给别人,是没法直接用的,因为会提示缺少很多库,一种方法是把这些库拷贝出来,一起发过去,但是这样不方便且文件很大,所以需要一种文件打包发布的方法。

2.环境

1)我用的QT 5.12.3版本,QT 4.x版本不行。

2)Enigma Virtual Box

https://enigmaprotector.com/en/downloads.html

3.具体步骤

1)打开一个QT程序,以release方式运行一次。操作如下图:

2)这时你的工程项目文件夹下,会生成一个关于release的文件夹,打开关于release相关的文件夹,找到该目录下release目录下的.exe程序。此时你点击是运行不成功的。因为缺少QT必要的库文件。

将这个.exe文件拷贝出来,创建一个单独的文件夹,放在这个文件夹下,比如桌面的test文件夹里。

3)在开始菜单中,打开QT命令行窗口

接着输入命令行,cd /d 路径(指的是需要打包的exe程序目录,就是刚才拷贝出来的exe程序所在的目录),回车

cd /d C:/Users/wangwnexue/Desktop/test

4)输入如下命令行:windeployqt 程序名 敲击回车。这一步操作是将所需的库文件全都拷贝到exe程序的当前文件:

此时,在当前目录下是可以点击运行exe程序的,说明库文件都已经拷贝到当前目录下了。这时就可以执行将这一堆文件进行打包的操作了,需要使用Enigma Virtual Box工具。

5)打开运行Enigma Virtual Box

第一步选择上述的exe文件

第二步:添加路径和文件如下图。选择所有文件后,注意是要所有文件和文件夹全部拖进。示意图如下:

结果如下:

第3步:点击在【Files Options】中可以选择是否将文件压缩:

第4步:最后点击Process开始打包

生成testweb_boxed.exe就可以直接打开使用了。

4.总结

在实际操作过程中遇到了以下几个问题

  1. 提示windeployqt不是内部或外部命令

原因是:一开始我电脑里用的不是QT5.x版本,所以它是没有的,装了新版本的就有了。

2.提示FaceImport.exe does not seem to be a Qt executable.

原因是:我装了QT最新版本,但是编译器用的还是老版本,需要改成最新的,就可以了。

qt命令行程序启动外部进程_QT之程序打包发布相关推荐

  1. 使用启动外部进程的方式解决there should be only one application object(使用qtwinmigrate中常出现)

    目录 背景 解决问题 背景 有点时候,在Windows操作系统下,在dll中使用qtwinmigrate添加了qt界面,然后在MFC或者C#或者其他语言调用的时候不会出现问题,然而再用QtGUI程序去 ...

  2. jmeter远程启动命令_Jmeter命令行方式启动

    在性能测试过程中,我们常常遇到这样的问题,使用Jmeter的GUI界面进行大并发量的性能测试时,界面容易卡死,无法继续进行性能测试.通过使用命令行方式启动jmeter是一个不错的方式.下面就简单介绍一 ...

  3. 使用命令行配置启动windows服务

    使用命令行配置启动windows服务 转载自:http://blog.csdn.net/wuliao009/article/details/7203219 使用命令行启动服务 1. 打开"命 ...

  4. docker 启动命令_Jenkins视频课程在Docker环境下安装Jenkins,命令行如何启动Jenkins...

    Tomcat是Apache开发的一款servlet容器,可以提供java服务,作为服务器来使用.Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建.部署.自动化, 满 ...

  5. redis docker安装、进入命令行后启动服务

    下载redis镜像 首先查看一下redis是否正确: docker search redis 显示: NAME DESCRIPTION STARS OFFICIAL AUTOMATED redis R ...

  6. php框架进入命令行,swoole为何要用命令行来启动_PHP开发框架教程

    swoole: PHP的协程高性能网络通信引擎,运用完整同步的代码完成异步顺序.PHP代码无需分外增添任何关键词,底层自动举行协程调理,完成异步IO. 基于 swoole 的服务端应该在命令行体式格局 ...

  7. 普元 AppServer 7.0 执行startServer.cmd启动,命令行一直启动中,server.log报错:com.primeton.appserver.l7e.exception.Impr

    [问题] AppServer 7.0 JDK1.8.0_251   执行startServer.cmd启动,命令行一直启动中,server.log报错: [2020-06-11T10:21:33.53 ...

  8. 如何用命令行启动mysql_命令行方式启动mysql 如何用命令行启动mysql

    如何用命令行启动mysql,有时候,仅是简单的想在电脑上启动myql,当然如果用myql图形管理器也是可以的,比如avicate以及qlyog,本经验教你如何使用命令行启动myql. 如何用命令行进入 ...

  9. centos 系列设置开机命令行模式启动

    centos中6种运行级别如下: 0:关机                        runleve0  --- poweroff.target 1:单用户                     ...

最新文章

  1. 【Deep Learning笔记】前馈神经网络和BP算法
  2. 2.11 linux的软防火墙apf安装配置
  3. java的c import_关于编译(javac),import,package的再理解
  4. iOS SAX解析XML
  5. spark 调度模块详解及源码分析
  6. mysql视图存储_Mysql 视图、存储过程以及权限控制
  7. 设单片机的晶振频率为6mhz c语言,单片机习题科学出版社.doc
  8. linux挂载ntfs分区报错,Linux下挂载NTFS分区和挂载分区的方法
  9. 一种简单好用的Vue表单验证
  10. as3 字符处理函数
  11. SpringMVC之拦截器实现登录验证
  12. prototype 对象的进一步深入理解
  13. apache POI技术的使用
  14. 罗马音平假名片假名转换器_平假名与片假名
  15. 8个高质量免抠素材网站
  16. latex入门(一)——latex网站overleaf
  17. 6-2 两顶点之前有路径吗?
  18. 江苏卫视舞蹈演员机器人_百度机器人踢馆江苏卫视《芝麻开门》
  19. 同款蓝牙耳机为什么会串联_为什么蓝牙耳机不能两个同时使用
  20. 怎样挑选适合自己的云主机

热门文章

  1. Python使用matplotlib可视化多个时间序列数据、在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series)
  2. pandas使用dropna函数删除dataframe中所有包含缺失值的数据行(drop rows which contain missing vlaues in dataframe)
  3. python使用openCV图像加载(转化为灰度图像)、Canny边缘检测器检测图像的边缘(Detect Edges)
  4. R语言ggplot2可视化:ggplot2可视化分组散点图并使用geom_smooth函数在散点图图中为不同的散点簇添加对应的回归曲线
  5. R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理、构建词袋模型、构建xgboost文本分类模型、基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化
  6. R语言abline函数为图像添加竖线、横线、斜线、回归线实战
  7. R假设检验之k-s检验(KOLMOGOROV AND SMIRNOV TEST)
  8. PCA图像数据降维及重构误差分析实战并使用TSNE进行异常数据可视化分析
  9. pandas使用to_sql方法将dataframe注册为数据库表进行数据整合和数据清洗并不对比SQL操作和dataframe操作
  10. The impact of third generation genomic technologies on plant genome assembly 第三代基因组技术对植物基因组组装的影响