精华内容
下载资源
问答
  • Qt程序打包发布方法(使用官方提供的windeployqt工具) Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行...

    Qt程序打包发布方法(使用官方提供的windeployqt工具)

    Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。
    以官方 Qt 5.4.0+MinGW 开发环境为例,windeployqt工具在 %QTDIR%\Qt5.4.0\5.4\mingw491_32\bin 目录下,其中 QTDIR 是 Qt 的安装目录,是环境变量。

    在集成开发环境 QtCreator 中可选择 “Qt Widgets Application” 或 “Qt Quick Application” 两种方式生成图形界面应用程序。

    下面分别介绍这两种方式创建应用的发布方式。

    1. Qt Widgets Application
    首先用 QtCreator 新建一个 Qt Widgets Application 项目,直接用默认的 QMainWindow 程序就可以了,项目名字假定是 hellomw。
    然后以 Release 方式编译生成 exe 程序:
    这里写图片描述

    生成的程序运行正常之后,找到项目的生成目录,比如 项目源码路径:C:\QtPros\hellomw\ 。
    它的项目生成目录是 C:\QtPros\build-hellomw-Desktop_Qt_5_4_0_MinGW_32bit-Release\ 。
    进入这个文件夹,在进入它的子文件夹 release 里面,找到 hellomw.exe,将这个exe 复制到一个新的单独的文件夹里用于发布,比如存到 D:\hellomw\ 文件夹里面。

    然后从开始菜单打开 Qt 命令行,输入命令:cd /d D:\hellomw
    然后使用 Qt安装目录(如D:\Qt\5.15.0\msvc2019\bin)的windeployqt 工具命令:D:\Qt\5.15.0\msvc2019\bin\windeployqt hellomw.exe

    这里写图片描述

    然后可以在 D:\hellomw 文件夹里看到 windeployqt 工具自动复制的插件文件夹和 dll文件、qm文件。这时候得到的就完整的 exe 程序发布集合,依赖关系都解决好了。
    把 D:\hellomw 文件夹 打包就可以发布了,不用自己一个个找 dll 文件了。D:\hellomw 文件夹里的qm文件是多国语言翻译文件,不需要可以删了,其他的都保留。

    1. Qt Quick Application

    首先用 QtCreator 新建一个 Qt Quick Application 项目,直接用默认的项目模版,点击下一步生成项目,项目名字假定是 helloqml。
    然后以 Release 方式编译生成 exe 程序:

    这里写图片描述

    然后找到项目的构建目录,比如项目源码目录 C:\QtPros\helloqml 。
    它的构建目录是:C:\QtPros\build-helloqml-Desktop_Qt_5_4_0_MinGW_32bit-Release\ 。
    进入这个目录,再进入 release 子文件夹,找到 helloqml.exe ,复制到一个新的单独的文件夹里面,比如 D:\helloqml\ 文件夹里面。

    然后从开始菜单打开 Qt 命令行,进入D:\helloqml\文件夹:cd /d D:\helloqml
    然后使用 windeployqt 工具命令:windeployqt helloqml.exe --qmldir C:\Qt\Qt5.4.0\5.4\mingw491_32\qml
    这里写图片描述
    注意不要跟完全一样照抄上条命令!–qmldir 是指出 Qt 库里面的 qml 文件夹位置,上面命令里 C:\Qt\Qt5.4.0 是 Qt 官方开发环境安装的文件夹,C:\Qt\Qt5.4.0\5.4\mingw491_32 是Qt类库的目录(QTDIR),因此使用的 --qmldir 后面写的是 C:\Qt\Qt5.4.0\5.4\mingw491_32\qml ,读者Qt环境安装路径不一样,要根据实际情况修改!

    然后可以看到 D:\helloqml 文件夹里有一大堆文件,就是 QtQuick程序需要的依赖文件。将整个 D:\helloqml 文件夹 打包就可以发布出去,在别的电脑上使用。
    这个 D:\helloqml 文件夹里的东西很多,看不懂就不要删,老老实实打包发布就行了。

    上面是最简单的程序发布,实际复杂程序可能还带一些图片文件、数据库文件、配置文件之类的,可以按自己需要添加这些文件到发布文件夹里面。

    展开全文
  • QT程序打包发布

    千次阅读 2016-03-03 14:52:25
    QT程序打包发布步骤总共分两个步骤:1.将程序和使用到的库放在一个文件夹中,2.打包发布 1.查找程序使用的动态库和插件等 有两种方法查看:1.微软的Process Explorer工具查看进程使用的动态库;1.使用Dependency ...

    QT程序打包发布步骤总共分两个步骤:1.将程序和使用到的库放在一个文件夹中,2.打包发布

    1.查找程序使用的动态库和插件等

    有两种方法查看:1.微软的Process Explorer工具查看进程使用的动态库;1.使用Dependency Walker工具查看

    2.打包发布程序

    这里使用NSIS软件进行打包发布,此软件是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。

    特点:开销小,支持大多数 Windows 平台,支持三大压缩算法:ZLib,BZip2和 LZMA,支持脚本,支持多语言,支持安装界面定制,提供可扩展的插件接口,支持网络安装、补丁,支持无人值守的安装模式,NSIS的license允许任何用途免费使用。

    个人打包过程详解:

    1.使用Process Explorer找到的依赖库和插件库有:

    其中插件库如图片支持库:imageformats和平台支持库:platforms需要保持其目录结构,如上图所示;

    2.打开NSIS Edit,利用制作向导制作安装包

    打卡NSIS Edit

    选择文件->新建脚本:向导,如图所示

    点击下一步,按个人需要设置应用程序信息

    下一步:默认就可以,语音默认为SimpChinese,其中“安装程序图标”这项可以选择上面文件夹中的“safe.ico”图标,这样生成的安装包的图标就是safe.ico图标

    下一步默认:


    下一步设置应用程序安装目录与授权文件,授权文件为自己建的licence.txt文件,内容任意但不能为空:

    下一步将应用程序文件加入进来,先将除imageformats和platforms文件夹的依赖库加入

    然后将imageformats和platforms文件夹加入,注意如果直接将这两个文件夹加入,最后生成的安装包安装后会将imageformats和platforms文件夹里的文件直接安装到安装目录中而不包含imageformats和platforms这两个文件夹,此时运行程序时会提示缺少*。dll,为保证安装包安转正确需要新建一个文件夹temp将imageformats和platforms文件夹放入其中然后再加入进去,如图所示:

    点击中的AddDirTree,将temp文件夹加入进行,注意“包含子目录”要打勾选上

    然后点击确定:

    然后下一步,默认的就行:

    然后下一步,自述文件可以是任意的文件,这里简单使用licence.txt文件:

    然后下一步,使用默认方式:

    然后下一步,将“保存脚本”,“转换文件路径到绝对路径”,“编译脚本”这三个都选上:

    然后点击“完成”,选择生成的脚本保存的路径(生成的安装包也保存在这里路径里),这里将其保存的temp文件夹中,脚本名任意起:


    然后点击“保存”,等待NSIS编译完成:

    在temp文件中生成的脚本和安装包如图所示:

    最后点击“Setup.exe”安装程序,运行结果如图所示:

    参考文章:http://blog.sina.com.cn/s/blog_a6fb6cc90101fer8.html

    其他参考文章:

    http://mobile.51cto.com/symbian-272285.htm

    http://blog.chinaunix.net/uid-20044771-id-3222797.html




    展开全文
  • qt程序打包发布

    2020-06-29 10:25:03
    qt程序打包发布 目标: 我想安装自己开发的程序 1.打包依赖库 a.使用qtcreator编译生成程序demo.exe,这是一个release版的 b.在程序demo.exe目录打开cmd c.输入命令 C:\Qt\Qt5.10.1\5.10.1\mingw53_32\bin\...

    qt程序打包发布

    目标: 我想安装自己开发的程序

    1.打包依赖库

    a.使用qtcreator编译生成程序demo.exe,这是一个release版的

    b.在程序demo.exe目录打开cmd

    c.输入命令

    C:\Qt\Qt5.10.1\5.10.1\mingw53_32\bin\windeployqt.exe demo.exe --qmldir C:\Qt\Qt5.10.1\5.10.1\mingw53_32\qml
    

    d.这样demo.exe运行依赖的库都会自动拷贝到同目录

    2.Qt Installer Framework

    a.去官网下载工具 http://download.qt.io/development_releases/installer-framework/3.0.1/installer-framework-build-stripped-3.0.1-win-x86.7z

    b.解压到C:\Qt\ifw-pkg,examples目录是例子

    c.把之前得到的demo.exe同目录下所有文件拷贝到
    C:\Qt\ifw-pkg\examples\tutorial\packages\com.vendor.product\data,
    data目录存放的是将来安装程序时候要释放安装的程序数据

    d.在C:\Qt\ifw-pkg\examples\tutorial目录打开cmd

    e.输入命令,创建离线安装包

    C:\Qt\ifw-pkg\bin\binarycreator.exe --offline-only -t C:\Qt\ifw-pkg\bin\installerbase.exe -c config\config.xml -p packages demo.exe
    

    f.这样就在tutorial目录生成安装包demo.exe

    3.测试安装包

    a.运行demo.exe

    b.像一般软件那样下一步进行安装

    c.安装完成后在C:\Users\chen\InstallationDirectory目录会看到安装结果

    d.InstallationDirectory目录的maintenancetool.exe是维护工具,demo.exe就是我们的程序

    详情参考官网 https://doc.qt.io/qtinstallerframework/index.html

    4.希望安装程序后在开始菜单添加快捷方式

    a.修改tutorial\packages\com.vendor.product\meta\installscript.qs文件

    Component.prototype.createOperations = function()
    {
        try {
            // call the base create operations function
            component.createOperations();
    		if (systemInfo.productType === "windows") {
    			component.addOperation("CreateShortcut", "@TargetDir@/demo.exe", "@StartMenuDir@/Love.lnk",
    				"workingDirectory=@TargetDir@", "iconPath=@TargetDir@/demo.exe",
    				"iconId=0", "description=Open Love file");
    		}
        } catch (e) {
            console.log(e);
        }
    }
    

    b.重新生成安装包,安装

    5.源代码参考

    https://gitee.com/chen227/qmlMouseMove

    展开全文
  • Qt 程序打包发布

    2018-04-15 11:29:46
    · Qt 打包发布方式 假设我写了一 app.exe 程序,主要有以下几种方法: app.exe 和动态链接库放在一起发布 打包成一个独立的 app.exe 文件直接发布 打包成安装包的方式发布 静态编译 app.exe 发布 一个大神说,还...

    Qt 打包发布方式


    假设我写了一 app.exe 程序,主要有以下几种发布方法:

    • app.exe 和动态链接库放在一起发布
    • 打包成一个独立的 app.exe 文件直接发布
    • 打包成安装包的方式发布
    • 静态编译 app.exe 发布
    • 一个大神说,还可以将动态库文件通过内存调用…(还没有尝试)

    注意事项:本文的方法不适宜用来打包Qt写的纯C++项目(Plain C++)!!!究其原因,是因为本文下面所用的 Qt 自带的 windeployqt.exe 不支持!!!

    发布纯C++项目的话,可以去看这篇博客…Qt中纯C++项目发布为dll的方法(超详细步骤)

    接下来一个个的讲…

    公共步骤 - 找到依赖项及链接关系


    第一步:生成 release 版本的 Qt 可执行程序

    这里写图片描述

    第二步:在工程目录下找到该文件

    1. 先在工程根目录下找到 build-你的工程名-Desktop_Qt_5_7_0_MinGW_32bit-Release 这个文件夹
    2. release 文件夹的 app.exe 拷贝至一个新文件夹,如在桌面上新建一个RELEASE 文件夹

    第三步:寻找依赖项

    1-通过开始菜单找到 Qtx.x for Desktop

    这里写图片描述

    2-输入命令 cd /d C:\Users\Neverland_LY\Desktop ,回车

    3-输入命令 windeployqt app.exe

    这里写图片描述

    此时,RELEASE 文件夹会多出来很多文件

    这里写图片描述

    其实有简单的方法,直接把 RELEASE 的 app.exe 拖动到 Qt 安装目录下的
    …\5.7\mingw53_32\bin\windeployqt.exe 即可

    这里写图片描述

    分支一:app.exe 和动态链接库放在一起发布


    直接将 RELEASE 文件夹打包成压缩包,然后放在别的电脑直接调用即可

    PS:如果在别的电脑运行提示还缺少 .dll 文件,那么就在自己电脑上把对应的文件在Qt安装目录下找齐,放到 RELEASE 文件夹重新打包即可

    分支二:打包成一个独立的 app.exe 文件直接发布


    首先下一个 Enigma Virtual Box

    Application virtualization system for Windows. Enigma Virtual Box enables application files and registry to be consolidated in a single executable file, without loss of efficiency and without virtualized files having to be extracted to the HDD. Enigma Virtual Box is a free application that supports both x86 and x64 binaries.
    [官网简介]

    • Enter Input File Name:选择 app.exe
    • Enter Output File Name:自己选择一个输出路径并重命名程序名
    • File 窗口:将RELEASE 文件夹下的所有文件都拖进来
    • Files Option:选择压缩(Compression)

    这里写图片描述

    这里写图片描述

    弹出如下窗口直接选确定

    ![这里写图片描述](https://img-blog.csdn.net/20180415112017481?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NzE5MTg4/font/5a6L5L2T/fontsize/400/fi **ll/I0JBQkFCMA==/dissolve/70)

    最后点击 Process开始制作,运行结束后如下:

    这里写图片描述

    好了,拿到别的电脑上尽情运行去吧~~~

    分支三:打包成安装包的方式发布


    Inno Setup is a free installer for Windows programs. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability. [官网简介]

    这篇百度经验个人认为写的不错,我就不造轮子了,大家加油!!!Inno打包教程

    分支四:静态编译 app.exe 发布


    分支五:将动态库文件通过内存调用


    • 暂无…请读者自行研究

    总结


    路漫漫其修远兮,吾将上下而求索

    展开全文
  • Qt 程序打包发布总结

    2017-02-07 10:49:31
    Qt 程序打包发布总结
  • Qt程序打包发布

    2017-08-08 11:13:47
    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,...
  • Qt程序打包发布流程

    2019-12-01 11:13:05
    今天我们来一起了解一下Qt程序打包发布流程和使用Inno Setup工具打包程序: 一、设置程序图标 应用程序的图标分两种: a、 主窗口图标,主要在程序运行时显示在主窗口左上角,或在任务栏上显示。 b、 运行程序...
  • qt程序打包发布.txt

    2019-05-14 09:01:19
    QT程序在Linux下的打包发布操作,文档里面附有脚本程序。
  • QT 程序打包发布

    2019-04-29 17:39:07
    发布应用程序时的候选者 --- 调试版 (debug) :开发阶段生成的可执行程序 包含了与调试相关的工作信息,体积巨大 执行速度慢,支持断点调试 --- 发布版 (release):最终产品的可执行程序 无任何冗余...
  • QT程序打包发布方法

    2017-08-04 16:24:11
    用QT做了一个小程序,提供给别人用,程序打包发布的方法参考“Qt程序打包发布方法(使用官方提供的windeployqt工具)”
  • Qt程序打包发布方法

    2020-06-24 18:05:21
    Qt程序打包发布方法 转自:https://blog.csdn.net/iw1210/article/details/51253458
  • Qt程序打包发布

    2021-03-25 19:47:20
    Qt程序打包发布 Qt程序打包 Qt程序发布 Qt程序打包 1、将程序选择release编译,在工程构建目录下找到release目录下的可执行文件。 2、在R盘中新建文件夹名为untitle,将untitiled.exe拷贝至该目录中 3、点击...
  • 以下讲述如何将Qt写的程序打包成一个run文件,进行一键安装。 先建立一个文件夹,下面建立三个文件夹,fonts,plugins,lib,分别放置字体,ui平台以及库,qt可执行程序也放到lib中,后面会使用c语言程式设定临时...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,947
精华内容 2,378
关键字:

qt程序打包发布安装