QT 发布Debug和Release的文件夹中缺少*.dll文件

//QT 5.9.9 + MSVC2017

代码写完后,点击Qt Creator左下角先选择debug还是release然后点运行(绿色小三角),程序开启后可以关闭。

在生成的文件夹debug/release中,点击*.exe,报错:缺少*.dll文件

1.系统环境变量未添加

D:\Tools\QT\qt5.9.9\5.9.9\msvc2017_64\bin

上面是我的路径,添加到系统环境变量后即可。

再点击*.exe,程序就可以运行了。


2.在上面的条件下,可能会发现虽然程序可以运行,但是编译生成的文件夹中并没有*.dll文件,

所以将文件夹放到其他电脑上时,程序还是运行不了,报错:缺少*.dll文件

那是因为我们在构建时没有添加自定义步骤,只用的安装后默认的构建步骤

所以为了解决这个问题:

a.点击左侧 项目,出现构建设置界面

b.点击 添加构建步骤

c.选择 自定义进程步骤

d.填入命令:windeployqt

e.参数:%{buildDir}/%{CurrentBuild:Type}/%{CurrentProject:Name}.exe

f.工作目录:%{buildDir}

g.左下角选择debug或release,清除后重新编译

h.编译完成后运行

i.关闭运行的程序,打开编译生成的文件夹,现在就有*.dll文件了

 

3.程序发布时还有另一个办法,可以从工程的release目录下找到可执行文件XXXX.exe,将其拷贝到一个空的文件夹,

此时的 XXXX.exe 是无法运行的,双击它系统会提示类似“找不到 xxx.dll”的错误信息。

然后在“开始”菜单的Qt目录下中找到 Qt 命令行程序并打开,在命令行中先通过cd命令定位到可执行文件的文件夹,然后再执行 "windeployqt XXXX.exe" 命令。

windeployqt 是 Qt 提供的 Windows 平台打包工具,它能找到 XXXX.exe 可执行文件需要的所有动态链接库,并将它们拷贝到当前文件夹中。

成功执行命令之后,可执行文件的文件夹内会增加很多文件夹和文件,这些都是 StuinfoFile.exe 执行所需要的;再次双击 XXXX.exe,如果它可以成功执行,表明打包操作是成功的。

我们可以直接将 该文件夹分享给他人,只要是 Windows 平台,都可以直接点击运行 XXXX.exe 文件。

posted @ 2021-12-15 10:59  通宵敲代码  阅读(1522)  评论(0编辑  收藏  举报