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 文件。