Qt应用程序无法启动,因为找不到插件"windows"目录

Qt application failed to start because not finding the plugin "windows" directory

本文关键字:插件 找不到 windows 目录 因为 应用程序 启动 Qt      更新时间:2023-10-16

我知道Qt有几个答案可以解决这个问题(比如这个Qt 5.1.1:应用程序无法启动,因为缺少平台插件"windows")。我使用的是Qt 5,但似乎这个问题在其他版本中也存在。

接受的答案不是我的问题,但是按照链接将平台目录复制到可执行文件的解决方案工作正常。但是,我发现这个解决方案非常不令人满意,因为这意味着我必须到处分发相同的目录。在项目中,我必须将其复制到我创建的每个项目的调试/发布分支中。运行designer.exe我也有这个问题,所以我也必须将其复制到那里,依此类推。

将我的QT安装目录中的插件目录放入PATH并没有解决问题,尽管我真的不明白为什么。显然,有一些自定义代码加载了所需的插件 DLL。

所以我想知道是否有一些可接受的方法来正确执行此操作,例如设置 QT_HOME 变量或类似变量,这样我就不必到处复制 DLL。

一般来说,自己构建Qt是一个坏主意,在这种情况下,甚至不保证有一个静态构建。您可以通过多种方法解决此问题:

从文档中:

All Qt programs automatically support the following command line options:
list
    li c{-platform} e {platformName[:options]}, specifies the
        l{Qt Platform Abstraction} (QPA) plugin.
        Overridden by the c QT_QPA_PLATFORM environment variable.
    li c{-platformpluginpath} e path, specifies the path to platform
        plugins.
        Overridden by the c QT_QPA_PLATFORM_PLUGIN_PATH environment
        variable.

void QCoreApplication::addLibraryPath(const QString & path) [static]

将路径附加到库路径列表的开头,确保首先搜索库。如果路径为空或已在路径列表中,则不会更改路径列表。

默认路径列表由单个条目组成,即插件的安装目录。插件的默认安装目录是 INSTALL/plugins,其中 INSTALL 是安装 Qt 的目录。

另请参阅 removeLibraryPath()、libraryPaths() 和 setLibraryPaths()。

根据您的确切愿望,这可以以一种或另一种方式解决。

尝试使用 QCoreApplication::addLibraryPath(PATH TO PLUGIN FOLDER).