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

  • 相关阅读:
    HTTP之multipart/formdata格式
    PHP之什么是CGI
    ObjectiveC之多语言的预编译头
    JS之addEventListener
    JS之要点Review
    iOS之JSON框架的选择
    iOS之Block笔记
    iOS之HTTP框架的选择
    PHP之自动加载对象
    HTTP之LastModified和ETag
  • 原文地址:https://www.cnblogs.com/txqdm/p/15691721.html
Copyright © 2020-2023  润新知