我有插件,我想将它与我的应用程序静态链接。在 plugin.pro 文件中,我有:
TEMPLATE = lib
CONFIG += staticlib
在 plugin.cpp 中:
Q_EXPORT_PLUGIN2(plugin, pluginClass)
当然 .pro 文件中的 TARGET 与插件名称相同。
在 myapp.pro 文件中:
LIBS += libplugin.a
主.cpp:
#include <QtGui/QApplication>
#include <QtPlugin>
Q_IMPORT_PLUGIN(plugin)
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
...
return a.exec();
}
插件编译没有错误,我得到 *.a 和 *.o 文件,所以我将 *.a 文件复制到 myapp 目录,当我尝试编译时出现如下错误:
cannot find -lmyplugin.a
collect2: ld returned 1 exit status
所以我在 myapp.pro 文件中给出了 libplugin.a 的完整路径,并且出现了 Q_IMPORT_PLUGIN 错误:
undefined reference to `qt_plugin_instance_plugin()'
还有很多这样的错误:
undefined reference to `pluginClass::function()'
我包含了我的插件的 *.h 文件。
我究竟做错了什么?