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 应用程序的平面目录部署?的主要内容,如果未能解决你的问题,请参考以下文章
Linux 上的 Qt 5.8 (ubuntu 16.04) 应用程序部署