有这个指南: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或其他东西?或者我该怎么办?