1.确保在Release编译下的程序能够运行(C++或qml都要做)
切换到Release模式下后点击编译
编译后在你的qt工程中会生成一份新的文件,一般会在你的工程下的build文件夹下。
进去后在进入release文件夹下会发现有一个.exe的可执行程序。双击一下看看能否运行你的代码内容。
如果弹出找不到qt5core.dll等等一系列的扩展包的话,就表示你的环境变量没有添加。当然根据不同的电脑环境变量添加有些许不同,不过应该都大差不差。(就拿我的举例)
首先你需要查看你的项目使用哪个构建程序构建的。
可以看到我的项目由Desktop Qt 6.7.2 MinG...构建的,并且是64位。
你需要找到你的qt的安装路径,将你的qt路径下的你的qt版本中的ming_64中的bin文件路径和qt路径下的Tools文件夹的ming..._64文件夹下的bin文件的路径添加到你的环境变量中。(我添加到了用户的环境变量中)
qt版本中的ming_64中的bin文件路径:
qt路径下的Tools文件夹的ming..._64文件夹下的bin文件的路径:
添加到环境变量:(可以用windows的搜索框搜索环境变量)
就是这个:
将复制的那两个路径添加进来并放到最上端
(注意:1.Tools路径要放到6.7.2路径的上边 2.这两个路径要上移到最上边 3.最要用没有中文的路径)
做完这些再去找到你的执行程序。双击便可以运行了。
2.打包成可执行文件:
C++打包:
新建一个空的文件夹,并且把你的.exe文件复制粘贴进去。
切换到你的文件路径下:
输入windeployqt xxx.exe就可以了,xxx.exe为你的执行程序。
然后生成完c++的qt程序代码应该就可以跑起来了。
QT6的可执行程序打包问题_qt6 打包-CSDN博客
qml打包:
大致跟c++打包差不多,但需要在终端输入的代码有些许不同。
新建一个空的文件夹,并且把你的.exe文件复制粘贴进去。
切换到你的文件路径下:
然后你需要输入"windeployqt xxx.exe --qmldir main工程路径"一串代码。
然后就会生成许多文件,最后就可以执行啦!!
3.打包到无qt端后出现的一些问题:
虽然说在有qt且配置好环境变量的电脑中可以正常运行,但是在发到无qt的电脑中却出现了一些扩展文件找不到的情况,如:找不到libgcc_s_dw2-1.dll,找不到libwinpthread.dll,找不到libstdc+±6.dll。
Everything安装Git路径。
解决:
可以用Everything软件搜索这几个文件,并从你的版本的构建文件夹中复制到应用程序的文件夹中。
将三个文件复制过去后,qml程序可以正常执行(而且我的qml程序比较简单),但之前我做的有一些复杂的c++程序虽然可以执行但是执行效果像是缺少了某些文件效果不理想。
然后我四处搜索了一些,可能跟配置的环境变量有关,我们在电脑中配置了环境变量,把那些配置文件都包含进来了,然而那些没有qt未配置环境变量的电脑就找不到dll文件。也就是在MinG...中通过windeployqt指令复制的dll文件不全。
之后有需求会在钻研...
4.将可执行文件打包成一个.exe文件
在打包前最好确认你的程序中不在缺少文件在打包。