如何在windows下发布QT应用程序(qt项目打包)

1、简述

在Qt的使用过程中,我们会发现Qt的的执行文件在Qt的IDE中是可以直接Build出来并执行产生效果的,但是如果直接在编译文件夹下找到该执行文件运行或是要提供给第三方人员使用的时候,执行文件却不能直接使用,会有各式各样的库文件缺失等问题,以下是Qt在Windows环境下的执行文件打包流程。

2、流程

找到qt安装目录中编辑器bin下的windepolyqt.exe的可执行文件,这是一个官方提供的应用部署工具,可以很方便的将所有应用程序需要的库、qml等包含进应用目录下,基本用法如下:

1、将你的QTy应用从Release或Debug中拷出来到单独的一个文件夹,务必将你在程序中调用的自己写的DLL文件一并拷过去;

2、Ctrl+R 打开运行,输入CMD,打开命令行;

3、键入windeployqt.exe的绝对路径,留个空格,键入你拷贝的应用程序的目录,然后确认就可以了。

D:\ruanjiananzhuang\Qt\anzhuangweizhi\5.14.2\msvc2017_64\bin\windeployqt.exe  D:\Qt\3.26\taishi\build-taishi-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug\debug\taishi.exe

         

       

 结果图:

     

3、 qt打包发布程序,解决找不到msvcp140.dll等动态库问题

    

MSVC编译器编写的程序就会遇到以上VC运行库缺失的问题。

也就是说,在打包的过程中,只是把Qt的相关动态库部署好了,但是VS (或者VC)的运行环境并没有部署。

所以为了杜绝隐患,应该重视这两个警告。那么如何解决呢

 解决方案就是添加一个VS的环境变量。

首先,找到VS的安装目录,比如我的是默认安装在C盘。复制路径C:\Program Files\Microsoft Visual Studio\2022\Community\VC

打开环境变量,添加一个系统变量,变量名为VCINSTALLDIR,变量值为C:\Program Files\Microsoft Visual Studio\2022\Community\VC

     

     

然后重新打开Qt的命令行,执行

D:\ruanjiananzhuang\Qt\anzhuangweizhi\5.14.2\msvc2017_64\bin\windeployqt.exe  D:\Qt\3.26\taishi\build-taishi-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug\debug\taishi.exe

     输出里增加了一些VC的动态库。这就说明,我们打包的同时,已经把VC的环境带上了。

4、打包时找不到ucrbased.dll

ucrtbased.dll是一个动态链接库(DLL)文件,它是Microsoft Universal C Runtime Library的一部分,是Windows操作系统中不可或缺的关键组件。

现在一下路径下查找ucrbased.dll文件是否存在。

C:\\Windows\System32\是否存在,如果有,直接复制该文件到原来的打包文件中即可。

如果不存在,则需要网上下载最新版本即可,这里就不介绍怎么下载了。

 

posted @ 2024-04-02 10:58  taohuaxiaochunfeng  阅读(1146)  评论(0编辑  收藏  举报