13、Qt程序的打包和发布

  我们开发编译后能打开这个exe文件是因为我们机器有Qt环境,他在运行的时候能自动检索需要的动态库,并且将动态库加载到内存里面,这样就能正常运行了,那如何将exe程序在没有Qt环境或者没有配置环境变量的电脑中也能运行呢,先要将该程序需要的动态库都找出来。

  Qt给我们提供了一个动态库的部署工具,这个部署工具和Qt提供的动态库都在一个目录下面,我们需要用到Qt对应的目录(也就是刚才添加到环境变量的那个目录),里面有一个名为windeployqt.exe的程序,需要将bin这个目录添加到环境变量中。

  现在程序已经编译完成,那么怎样来发布它,让它在别人的计算机上也能运行呢?前面生成的 debug版本程序依赖的dll文件很大,那是因为debug版本程序中包含了调试信息,可以用来调试。而真正要发布程序时要使用release版本。下面回到QtCreator 中对 helloworld程序进行release 版本的编译。在左下角的目标选择器(Tar-get selector)中将构建目标设置为Release,如下图所示,然后单击运行图标。

  编译完成后再看项目目录中build-helloworld-Desktop_Qt_5_6_1MinGW_32bit-Release 文件夹的release目录,其中已经生成了helloworld.exe 文件。可以看一下它的大小,只有 24 KB,而前面的 debug版的 helloworld,exe却有1.08 MB,相差很大。如果前面已经添加了Path系统环境变量,那么现在就可以直接双击运行该程序。如果要使Release版本的程序可以在别人的计算机上运行(当然,对方计算机也要是Windows平台),还需要将几个d文件与其一起发布。可以在桌面上新建一个文件夹,重命名为“我的第一个Qt程序”,然后将release文件夹中的helloworld.exe 复制过来,再去Qt安装目录的bin目录中将libgcc_s_dw2-1.dll、libstdc++-6.dll、libwinpthread-1.dll,Qt5Core.dll、Qt5Gui.dll和Qt5Widgets.dll这6个文件复制过来另外,还需要将C:\Qt\Qt5.6.1\5.6\mingw49_32\plugins 目录中的 platforms 文件夹复制过来(不要修改该文件夹名称),里面只需要保留qwindows.dl文件即可。现在整个文件夹一共有19.3MB,如果使用WinRAR等打包压缩软件对它进行压缩,就只有6MB了,已经到达了可以接受的程度,这时就可以将压缩包发布出去了。

  另外,Qt提供了一个windeployqt工具来自动创建可部署的文件夹。例如,生成的release版本可执行文件在C:\Users\Administrator\Desktop\qt_exe文件夹中,则只需要在开始菜单的Qt5.6.1菜单中启动 Qt5.6 for Desktop命令行工具,然后输入下面命令即可:

windeployqt C:\Users\Administrator\Desktop\qt_exe

 

 

posted @ 2025-03-25 16:15  孤情剑客  阅读(195)  评论(0)    收藏  举报