1
我有一个嵌入资源的自定义QT插件模块。我想静态地与应用程序链接这个插件:在qt 4.5中,是否有可能在静态链接插件中有资源?
LIBS += -lstatic_plugin_with_resources
在我使用的是Q_IMPORT_PLUGIN()
宏应用程序,它允许使用插件的应用;但是该插件无法访问其嵌入式资源。
使用插件作为共享库确实有效。
我有一个嵌入资源的自定义QT插件模块。我想静态地与应用程序链接这个插件:在qt 4.5中,是否有可能在静态链接插件中有资源?
LIBS += -lstatic_plugin_with_resources
在我使用的是Q_IMPORT_PLUGIN()
宏应用程序,它允许使用插件的应用;但是该插件无法访问其嵌入式资源。
使用插件作为共享库确实有效。
这是可能的。在应用程序中,您需要显式初始化静态插件中包含的资源。
这是通过调用Q_INIT_RESOURCE(resource_base_name)
,其中resource_base_name
是指定的资源.qrc文件的基本名称来完成。这可能应该在main()或应用程序启动时调用。如果插件不再使用,您可以选择拨打Q_CLEANUP_RESOURCE()
。
查看QT 4.5 resource doc的最后一部分。另请参阅Q_INIT_RESOURCE
的文档。
这对我的Linux版本的QT 4.5工作。