我知道有几个答案可以解决Qt这个问题(就像这个问题Qt 5.1.1: Application failed to start because platform plugin "windows" is missing)。我正在使用Qt 5,但似乎这个问题也出现在其他版本中。
接受的答案不是我的问题,但是根据链接,将平台目录复制到可执行文件的解决方案可以正常工作。但是我发现这个解决方案非常不令人满意,因为这意味着我必须在整个地方分发这个相同的目录。在项目中,我必须将它复制到我创建的每个和每个项目的调试/发布分支中。正在运行designer.exe
我也有这个问题,所以我也必须将它复制到那里,依此类推。
将我的QT安装目录中的插件目录放入PATH并没有解决问题,但我真的不明白为什么。显然有一些自定义代码加载了所需的插件DLL。
所以我想知道是否有一些可接受的方法可以正确地执行此操作,例如设置QT_HOME变量或类似,所以我不必在整个地方复制DLL。
答案 0 :(得分:0)
尝试使用QCoreApplication :: addLibraryPath(PATH TO PLUGIN FOLDER)。
答案 1 :(得分:0)
一般来说,自己构建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]
预先指向库路径列表开头的路径,确保首先搜索库。如果path为空或已在路径列表中,则路径列表不会更改。
默认路径列表由单个条目组成,即插件的安装目录。插件的默认安装目录是INSTALL / plugins,其中INSTALL是安装Qt的目录。
另请参阅removeLibraryPath(),libraryPaths()和setLibraryPaths()。
根据您的确切愿望,这可以通过这种或那种方式解决。