【问题标题】:Unable to run Qt applications in Windows无法在 Windows 中运行 Qt 应用程序
【发布时间】:2012-08-26 18:53:36
【问题描述】:

我使用 MinGW GCC 创建了默认 MainWindow 的可执行文件(没有更改任何代码),并将 .exe 文件从调试目录移动到另一个目录,其中我有 QtCored4.dll,QtGuid4.dll 和 QtNetworkd4.dll

当我单击可执行文件时,我收到错误消息:

在动态链接库QtGuid4.dll中找不到程序入口点_ZN7QWidget8winEventEP6tagMSGPI。

使用 Dependency Walker 打开我的可执行文件会给我以下通知:

错误:由于隐式依赖模块中缺少导出函数,至少一个模块具有未解析的导入。 警告:至少没有找到一个延迟加载依赖模块。 警告:由于延迟加载依赖模块中缺少导出功能,至少有一个模块存在未解析的导入。

我真的不知道我哪里出错了,如果有任何帮助,我将不胜感激。谢谢!

【问题讨论】:

  • 您确认 Qt dll 上的校验和是否相同?
  • 您从哪里获得 DLL?如果您自己构建它们,那么配置是什么?以及哪些设置用于构建可执行文件?
  • 我从来没有能够使用 Qt 创建一个独立的可执行文件...如果你发现了,我很想知道该怎么做。有人告诉我你需要许可证。
  • 在我看来,您拥有来自不同编译器或不同版本 Qt 的 Qt dll。
  • @NekkoRivera 您无需购买商业许可证即可编译独立的可执行文件,但您的程序必须在与 Qt 库相同的许可证下分发:LGPL。您可以将您的专有程序“动态链接”到 Qt 库,因为 LGPL 旨在允许专有应用程序使用开源库。

标签: c++ qt dll mingw dependency-walker


【解决方案1】:

您要么错过了一个由 QtGuid4.dll 动态加载的 DLL(依赖分析程序应该指出这一点),要么该 DLL 错过了符号,因为它是使用不同的配置编译的。您的可执行文件是否像 DLL 一样使用调试设置编译?你也有“普通”的 DLL(没有“d”)吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多