方法:将release方式编译的可执行文件放到一个新建的文件夹中,然后将所有需要的库文件复制到同目录下。

使用ldd查阅需要的库文件。

将所有的库文件复制到当前目录,然后运行。

此处可以写一个脚本。

#! /bin/bash

EXE='Calender'

PWD=`pwd`

files=`ldd $EXE | awk '{ if(match($3,"^/"))

printf("%s "),$3 }'`

cp $files $PWD

在CentOS上生成,放到Ubuntu上尝试执行:

CentOS上的表现:

Ubuntu上:

额,还是存在着差别。

qt程序打包 for windows

第一种方案,手动复制必要的库文件

使用Depends.exe打开exe文件,查看错误,注意黄色文件,那就是缺失的文件,然后复制需要的dll文件到exe所在的目录中。所需要的dll文件在QtDir\版本号\kits\bin中。比如:D:\Qt\Qt5.8.0\5.8\mingw53_32\bin

不要复制错了,不然你会得到CPU类型不兼容等奇怪的错误。

接着使用打包工具进行打包:

FilePacker v1.1.exe

选择文件,下一步,设置好路径(不要删除解压路径)。后面将产生安装(解压)程序,然后双击它就能执行。

第二种方案,借助于windeployqt

听说qt自带着一个叫做windeployqt的打包神器,不过我的qt上怎么没有啊,百思不得解。

我猜想qt 5.1.1可能是因为版本太低了所以没有windeployqt,看了网上的许多windeployqt的教程都是qt 5.4以上,所以我重新下载了新版本的qt。

对一个程序打包(举例子说明):

将以release方式编译生成的可执行文件exe复制到新建文件夹E:\Alarm中

然后,依次点击 开始 —— qt —— 版本号 —— kit名称 —— Qt 版本号 for desktop

进入命令环境后

D:\Qt5.8.0\5.8\mingw53_32>cd /d E:\Alarm

E:\Alarm>windeployqt myAlarm.exe

E:\Alarm\myAlarm.exe 32 bit, release executable

Adding Qt5Svg for qsvgicon.dll

Skipping plugin qtvirtualkeyboardplugin.dll due to disabled depenndencies.

Direct dependencies: Qt5Core Qt5Gui Qt5Multimedia Qt5Widgets

All dependencies : Qt5Core Qt5Gui Qt5Multimedia Qt5Network Qt5Widgets

To be deployed : Qt5Core Qt5Gui Qt5Multimedia Qt5Network Qt5Svg Qt5Widgets

Updating Qt5Core.dll.

Updating Qt5Gui.dll.

Updating Qt5Multimedia.dll.

Updating Qt5Network.dll.

Updating Qt5Svg.dll.

Updating Qt5Widgets.dll.

Updating libGLESV2.dll.

Updating libEGL.dll.

Updating D3Dcompiler_43.dll.

Updating opengl32sw.dll.

Updating libgcc_s_dw2-1.dll.

Updating libstdc++-6.dll.

Updating libwinpthread-1.dll.

Patching Qt5Core.dll...

Creating directory E:/Alarm/audio.

Updating qtaudio_windows.dll.

Creating directory E:/Alarm/bearer.

Updating qgenericbearer.dll.

Updating qnativewifibearer.dll.

Creating directory E:/Alarm/iconengines.

Updating qsvgicon.dll.

Creating directory E:/Alarm/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:/Alarm/mediaservice.

Updating dsengine.dll.

Updating qtmedia_audioengine.dll.

Creating directory E:/Alarm/platforms.

Updating qwindows.dll.

Creating directory E:/Alarm/playlistformats.

Updating qtmultimedia_m3u.dll.

Creating E:\Alarm\translations...

Creating qt_ca.qm...

Creating qt_cs.qm...

Creating qt_de.qm...

Creating qt_en.qm...

Creating qt_fi.qm...

Creating qt_fr.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...

E:\Alarm>

最后,可查看新建文件夹中生成了许多新的文件。将文件夹放到其他windows系统中可正常运行。

qt在windows和linux效率,QT 程序在windows和linux上的打包相关推荐

  1. linux32位运行64位程序,32位windows下可以运行的程序在64位linux下报错

    已结贴√ 问题点数:20 回复次数:3 32位windows下可以运行的程序在64位linux下报错 filt.c在32位windows code:blocks 10.05下运行无任何异样. 传到64 ...

  2. 在Linux中某些程序无法运行,为何linux下的程序不能在windows下运行,不是“废话”那么简单...

    大家好,近期我发的文章都比较底层,过些天再发Linux基础方面的内容,多谢大伙儿的支持,回到正题. 您看,linux和windows都是运行在x86体系架构cpu上的操作系统,也就是指令的机器码都是一 ...

  3. 如何在虚拟机linux下运行程序吗,如何在Linux上运行Windows应用程序?

    一些人可能避免在Linux上运行Windows应用程序,但事实上有时候这么做大有帮助. 一些人无法摆脱Windows的最主要原因之一是可用的应用程序.有时候,这些应用程序是老式应用程序,没有开源替代版 ...

  4. java如何调用linux命令_java程序中如何调用linux命令

    java程序中如何调用linux命令 作为一个Java开发人员,有些常用的Linux命令必须掌握.即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令.因为很多服 ...

  5. matlab在linux效率高吗,取代matlab, Linux下科学计算环境的搭建

    不久前,学姐发给我一程序,我开虚拟机跑matlab算了一边,虽然我给了虚拟的XP 512M的内存,还是慢的要命.足足等了30s才出来结果.这还是只算了一遍,如果是算两层循环,96*2遍的话,我去新街口 ...

  6. 后端程序员要会linux吗,后端程序员必备的Linux基础知识

    一.从认识操作系统开始 1.1操作系统简介 操作系统是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石: 操作系统本质上是运行在计算机上的软件程序: 为用户提供一个与系统交互的操作界面: 操作 ...

  7. linux中把程序启到前台,Linux操作系统桌面应用与管理Q4rw2进程与作业管理-PPT精品文档.ppt...

    红旗Linux,情境四任务2:进程和作业管理,任务2-1,了解进程管理知识用命令实现进程管理,Linux进程管理,WINDOWS?任务管理器LINUX利用命令管理进程包括前.后台进程的管理以及终止等, ...

  8. linux写聊天程序,轻易实现基于linux或win运行的聊天服务端程序

    对于不了解网络编程的开发人员来说,编写一个良好的服务端通讯程序是一件比较麻烦的事情.然而通过EC这个免费组件你可以非常简单地构建一个基于linux或win部署运行的网络服务程序.这种便利性完全得益于m ...

  9. 测试linux系统的程序员,日常测试Linux命令

    命令 cd 1. 如何进入上级目录 cd .. 2. 如何进入当前用户主目录 cd ~ 3. 如何进入上两级目录 cd ../.. 4. 进入当前目录命令 cd . 5. 如何进入目录 /usr/is ...

最新文章

  1. 德国工业4.0眼里“工业互联网”与“智能制造”
  2. 计算机组成原理数据冒险的解决nop,计算机组成原理实验讲义(103页)-原创力文档...
  3. 微信和Python之间,还能这样玩,你所不知道的骚操作!
  4. DIV Scroll属性
  5. 微电台│Get产品信息管理指南,和客户谈一场全渠道恋爱!
  6. 第二代计算机网络主要贡献,2010级计算机网络试题
  7. html简单用户登录界面_简单实现 nginx 用户登录认证
  8. 从skyeye学习arm( u-boot篇)
  9. 16.4 多模态情感识别
  10. 嵌入式Linux应用开发
  11. R数据分析:列线图的做法及解释
  12. mb860 刷机教程
  13. 扫描用计算机名称不成功,电脑中使用扫描仪时提示通讯错误时请更新扫描端口的解决方法...
  14. 正弦信号频谱分析实验
  15. 【聚沙成塔系列】之《UML九种图
  16. 腾达路由器登录远端服务器无响应,腾达路由器 192.168.0.1(tendawifi.com)打不开,怎么办?...
  17. 购买阿里云服务器搭建网站或个人博客详细教程
  18. 为何晶振并联一个1MΩ电阻?晶振低温不起振如何解决?
  19. 微服务ServiceMesh及三种服务发现机制
  20. 巴斯卡(Pascal)三角形

热门文章

  1. 基于BCH的一些落地应用现状
  2. 18 常用模块 random shutil shevle logging sys.stdin/out/err
  3. php 中文转拼音,可以只转首字母,可以设置utf8、gbk
  4. 快速建站的php开源程序
  5. C语言SQLite3基本操作Demo
  6. [你必须知道的.NET]第二十一回:认识全面的null
  7. mysql中取出的时间日期多个.0
  8. Confluence 6 用户目录图例 - 连接 Jira 和 Jira 连接 LDAP
  9. JavaScript Array reverse 方法:颠倒数组中元素的顺序
  10. Codeforces Gym 100523E E - Gophers SET