免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持APP、电脑端、小程序、IOS免签等等

qt之exe和dll打包方法

Qt程序在Windows平台下编译后,很多依赖的动态库(DLL)还需要与可执行文件(EXE)一起打包,方便其他人在没有安装Qt环境的机器上运行。本文将详细介绍Qt程序如何通过exe和dll打包的原理和具体方法。

一、打包原理

Qt程序在编译后,会产生一个exe文件,这个文件是程序的主体。但它依赖于一些动态链接库(也称为共享库)来提供Qt框架的功能。这些动态链接库以dll文件的形式存在。在运行Qt程序时,系统会加载这些dll文件,并将它们“链接”到程序中。因此,将程序与依赖的dll文件一起打包,可以让其他人在没有安装Qt开发环境的计算机上运行程序。

二、打包方法

1. 手动打包:

收集所需的dll文件,并将它们与exe置于同一目录下。以下是一些常见的Qt DLL文件(根据实际需求可增删):

- Qt5Core.dll

- QtGui4.dll/Qt5Gui.dll

- QtWidgets4.dll/Qt5Widgets.dll

此外,还需收集平台插件,一般为 platforms/qwindows.dll(或 platforms/qwindowsd.dll,根据是否为debug版本的exe)。整个目录结构大致如下:

```

MyApp/

MyApp.exe

Qt5Core.dll

Qt5Gui.dll

Qt5Widgets.dll

platforms/

qwindows.dll

```

2. 使用windeployqt工具(推荐):

windeployqt工具可以自动找到exe文件依赖的所有dll文件,并将它们放置在合适的位置。具体步骤如下:

1) 打开Qt命令提示符或在系统命令提示符下添加Qt的bin目录到PATH环境变量

2) 在命令提示符中,输入以下命令:

```

windeployqt.exe

```

其中, 是你的exe文件的完整路径。例如:

```

windeployqt.exe C:\Users\user\Desktop\MyApp\MyApp.exe

```

该命令将把所需的dll文件和相关资源复制到指定目录,完成打包。

注意事项:

- 如果需要打包32位版本的程序,确保用于打包的Qt环境和windeployqt也是32位的。同样地,对于64位版本的程序,相应的Qt环境和windeployqt也应该是64位的。

- 如果发现缺失一些非Qt的系统dll文件,请确保将这些缺失的dll文件与程序一起分发。可以到Visual Studio安装目录下的VC++ Redistributable安装包中找到它们。

通过以上方法,你可以将Qt程序一同打包,方便在其他机器上运行。


相关知识:
生成exe太大了
当我们开发一个软件或程序,并尝试将其打包成一个可执行文件(例如,.exe文件)时,可能会遇到生成的可执行文件大小过大的问题。此时,了解可执行文件体积变大的原因以及如何优化它们非常重要。下面,我将详细介绍为何生成的 .exe 文件太大,以及可能的解决方案。1
2023-06-14
将ico图标打包进exe方法
在开发应用程序时,为其分配一个独特且吸引人的图标非常重要,这可以让用户在众多应用中轻松找到并识别您的程序。ICO图标文件可以嵌入到应用程序的EXE文件中,这样当用户安装您的程序时,桌面快捷方式和文件浏览器中都会显示自定义的图标。以下是将ICO图标打包进EX
2023-06-14
vs生成的exe如何重启
如何使用Visual Studio生成的exe文件来实现程序的自动重启?在创建一个可执行文件(.exe)的过程中,你可能会需要让你的程序自动重启。这可以在更新程序或者恢复从异常状态时有用。在本教程中,我们将了解如何使用C++编写的Visual Studio
2023-06-14
vb调用python打包的exe
在本教程中,我将指导大家如何从Visual Basic (VB) 程序调用通过Python打包的可执行文件 (exe)。这个教程主要分为以下几个部分:1. 创建一个简单的Python程序并将其打包成exe文件。2. 编写一个VB程序调用这个exe文件。3.
2023-06-14
vbs程序封装exe
在本教程中,我们将介绍如何将VBScript (VBS) 程序封装成可执行文件 (EXE)。这样,您可以在没有外部脚本解释器的环境中轻松地运行VBS程序。此外,这还可以为您的脚本提供更好的保护、便利的分发流程以及可选的适配不同版本的Windows操作系统。
2023-06-14
python单独打包exe文件
Python 单独打包 EXE 文件 - 原理和详细介绍Python 作为一种解释型编程语言,它的代码本身需要通过 Python 解释器来运行。但在某些场景下,我们可能希望将 Python 代码打包成一个独立的可执行(EXE)文件,以便于在没有安装 Pyt
2023-06-14