【问题标题】:Qt Release build unable to open DLLQt Release build 无法打开 DLL
【发布时间】:2012-11-20 02:34:39
【问题描述】:

虽然我的应用程序使用 QtCreator 2.4.1 在 Qt 4.8.1 的 Debug 模式下运行良好,但它无法在 Release 模式下启动。双击生成的.exe返回:

“应用程序无法正常启动(0XC000007B)。点击确定关闭应用程序。”

在 QtCreator 中运行只是停止(应用程序窗口不出现),最终会返回错误代码:-1073741819

运行 Dependency Walker 将显示:

我已尝试搜索 msvcr90.dll 的位置,它出现在 C:/Windows/winsxd/...下的多个目录中...

此时我应该怎么做才能解决这个问题?我的机器是 64x Windows 7。

【问题讨论】:

    标签: c++ qt dll


    【解决方案1】:

    您应该部署 Qt(和其他一些)库以便以这种方式运行您的应用程序。

    dll 文件位于库安装路径的 bin 文件夹中。例如,在我的机器上是:

    C:\QtSDK\Desktop\Qt\4.8.0\msvc2010\bin
    

    因为我使用的是 Qt 的 MSVC2010 版本(而不是 MinGW 版本)。 Dependency Walker 会告诉您必须复制哪些文件。

    Qt Creator 应该可以正常运行您的应用程序。你用的是什么版本的Qt? (4.8,MinGW 或 VC2010)

    【讨论】:

    • 我相信我正在使用 MSVS2010,因为在构建中它表示“Qt 4.8.1 for Desktop MSVS2010(Qt SDK) Debug/Release”用于发布或调试构建。您的意思是我需要将 dll 文件复制到与我的应用程序 .exe 相同的文件夹中?
    • 是的,我就是这个意思。或者你可以注册他们。但无论如何,在部署应用程序时,将这些 DLL 复制到可执行文件所在的文件夹中会更容易
    • 但是,我发现了相同的两个 DLL 的多个副本,哪一个是正确的版本?到目前为止,我已经猜到它与地域(语言)有关。
    • 语言不需要单独的 DLL(字符串在 .qm 文件中)。 SDK 包含多个 Qt,因为 QtCreator 自带(使其独立于开发的那个),并且根据安装,一个可能有更多 Qt 版本,例如适用于嵌入式设备。
    • 或者您可能将调试与发布版本混淆了。调试版本以 d 结尾。 Ej:QtCored.dll
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 2020-09-02
    相关资源
    最近更新 更多