在 qt 4.5 中,是不是可以在静态链接插件中拥有资源?

Posted

技术标签:

【中文标题】在 qt 4.5 中,是不是可以在静态链接插件中拥有资源?【英文标题】:In qt 4.5, is it possible to have resources in a statically linked plugin?在 qt 4.5 中,是否可以在静态链接插件中拥有资源? 【发布时间】:2009-07-30 15:11:55 【问题描述】:

我有一个嵌入资源的自定义 QT 插件模块。我想将此插件与应用程序静态链接:

LIBS += -lstatic_plugin_with_resources

在应用程序中我使用Q_IMPORT_PLUGIN() 宏,它允许应用程序使用插件;但是插件无法访问其嵌入的资源。

将插件用作共享库确实有效。

【问题讨论】:

【参考方案1】:

这是可能的。在应用程序中,您需要显式初始化静态插件中包含的资源。

这是通过调用 Q_INIT_RESOURCE(resource_base_name) 来完成的,其中resource_base_name 是指定资源的 .qrc 文件的基本名称。这可能应该在 main() 或应用程序启动时调用。如果不再使用插件,您可以选择致电 Q_CLEANUP_RESOURCE()

请参阅 QT 4.5 resource doc 的最后一部分。另请参阅Q_INIT_RESOURCE 的文档。

这在 QT 4.5 的 linux 版本上对我有用。

【讨论】:

以上是关于在 qt 4.5 中,是不是可以在静态链接插件中拥有资源?的主要内容,如果未能解决你的问题,请参考以下文章

QT交叉编译时怎么添加静态库,急!!!

如何在 静态编译的qt 5.5.1 中 使用数据库插件连接 odbc

Qt系列文章之三十七(基于QWidget 创建和使用静态链接库)

Qt系列文章之三十七(基于QWidget 创建和使用静态链接库)

如何在VS2015中使用PostgreSQL插件静态编译Qt 5.8

如何在 静态编译的QT 5.5.1 中 使用数据库插件连接 ODBC(调用静态插件)