Qt 5 应用程序的平面目录部署?

Posted

技术标签:

【中文标题】Qt 5 应用程序的平面目录部署?【英文标题】:Flat directory deployment for Qt 5 applications? 【发布时间】:2014-10-22 11:31:24 【问题描述】:

我正在部署一个编译到 Windows 的 Qt 5 应用程序。事实证明,某些功能存储在必须放置在特定子目录中的 DLL 插件中,迫使我使用这种结构:

申请目录 | +------- 平台 | | + +-------- qwindows.dll | +------- qpldrivers | | | +-------- qsqlite.dll | +------- myprogram.exe、QtCore5.dll 等

我想展平这个目录,以便将 qwindows.dll 和 qsqlite.dll(以及任何其他未来的插件)存储在与我的可执行文件相同的目录中。

申请目录 | +------- myprogram.exe、QtCore5.dll、qwindows.dll、qsqlite.dll等

有没有办法做到这一点?

【问题讨论】:

AFAIK,没有。 我认为 Nicolas 是对的,这是不可能的。请参阅 QStyleFactory 和 QPlatformPrintPlugin 作为 Qt 源代码中硬编码路径名的示例。 @cloose 我同时找到了this - 似乎应该支持它,但不是。你认为我应该提交错误报告吗? 【参考方案1】:

您可以编写一个qt.conf 文件来自定义Qt 查找插件。

http://doc.qt.io/qt-5/qt-conf.html

【讨论】:

【参考方案2】:

尝试使用addLibraryPath:

QCoreApplication::addLibraryPath(".");
QCoreApplication::addLibraryPath("otherLibDir");

【讨论】:

以上是关于Qt 5 应用程序的平面目录部署?的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上部署 Qt 5 应用程序

在 Windows 上部署 Qt 5 应用程序

Linux 上的 Qt 5.8 (ubuntu 16.04) 应用程序部署

Linux Mint x64:Qt 5.3.1 插件部署:不兼容的 qt 库

尝试使用共享库部署 Qt 应用程序时出错

如何在 windows xp 上部署 Qt 5.10 Quick 2 应用程序?