有这个指南:http: //qt-project.org/doc/qt-4.8/plugins-howto.html
它完全没用,因为它缺少太多重要信息。然而,经过几个小时的研究,我想出了如何到达某个地方:
接口.h源代码:https ://github.com/huggle/huggle3-qt-lx/blob/master/huggle/iextension.h
以及插件的.h:https ://github.com/huggle/extensions/blob/master/c%2B%2B/HelloWorld/HelloWorld/helloworld.h
我设法为插件创建了一个接口并将宏应用到它,然后我创建了一个插件,但是作为示例插件应该从接口继承,我显然需要以某种方式从我的项目中包含 .h 文件。我这样做了,然后我使用 QPluginLoader 来加载 .so 文件。
但是我得到了这个:
Failed to load (reason: Cannot load library /home/petanb/Documents/huggle3-qt-lx/huggle/extensions/libHelloWorld.so: (/home/petanb/Documents/huggle3-qt-lx/huggle/extensions/libHelloWorld.so: undefined symbol: _ZTIN6Huggle10iExtensionE))
这是有道理的,库(我在其中#include 我的项目的 .h 文件)显然缺少对我的应用程序二进制文件的引用以解决它,但我该如何给它呢?我应该复制应用程序的二进制文件,将其重命名为 something.so 并将其放入 /lib 之类的吗?或者我应该怎么做?