【问题标题】:Why Qt project exe does not run by itself?为什么 Qt 项目 exe 不能自行运行?
【发布时间】:2015-08-04 19:24:53
【问题描述】:

我安装了 Qt,但它的项目(exe 文件)不能自行运行。我将以下内容添加到路径(Windows):

C:\Qt\Qt5.4.1\Tools\mingw491_32\bin;

C:\Qt\Qt5.4.1\Tools\QtCreator\bin;

C:\Qt\Qt5.4.1\5.4\mingw491_32\bin;

C:\Qt\Qt5.4.1\Tools\mingw491_32\i686-w64-mingw32\bin;

C:\Qt\Qt5.4.1\Tools\mingw491_32\opt\bin;

但它仍然返回错误。怎么解决?

另外,通过使用 windeployqt.exe 我有 nessesary dll 文件,因此与它们在同一目录中的应用程序可以在任何电脑上完美运行,但我找不到在哪里将它们放在一个地方和应用程序中,并将其文件放在另一个目录中,以便它运行。

可以吗? (当应用程序的文件为 1mb 或更少时,dll-s 约为 22mb)

【问题讨论】:

标签: qt


【解决方案1】:

如果您想查找应用所需的所有 dll 文件 - 请使用 dependency walker tool。它会告诉您缺少哪些 dll,您可以设置 PATH 以满足所有需求。

如果您想与他人共享您的应用程序,您需要添加所有 dll。您已经找到了正确的方法(windeployqt)。

如果您想将应用程序的 exe 与 Qt 的 dll 文件分开,这可能会很困难。您可以尝试准备一个启动器,它将 PATH 设置到带有 dll 的目录,然后从另一个目录运行 exe。但是,您可能仍然有问题,因为 Qt 不仅需要 dll,还需要其他文件(翻译、插件等)。将 exe 和所有这些东西放在一个目录中是最简单的解决方案。改为在“开始”菜单中添加漂亮的图标;)

【讨论】:

  • 依赖遍历器工具对于运行时链接的库来说毫无用处,就像 Qt 实际需要做的除了抱怨它们丢失之外的所有插件一样。
【解决方案2】:

如果您将 QtCreator bin 添加到您的路径以及 mingw qt,那么那里有 2 个版本的 qt。 QtCreator 可能已使用与您所拥有的不同版本的 Qt 进行编译,因此请尝试将其从您的路径中删除。

这一行 C:\Qt\Qt5.4.1\5.4\mingw491_32\bin;

应该足以引用所有 Qt dll。

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 2011-07-29
    • 1970-01-01
    相关资源
    最近更新 更多