3
我有插件,我想静态链接它与我的应用程序。 在plugin.pro文件我有:自己的静态链接插件
TEMPLATE = lib
CONFIG += staticlib
在plugin.cpp:
当然Q_EXPORT_PLUGIN2(plugin, pluginClass)
在.pro文件目标是一样的插件名称。
在myapp.pro文件:
LIBS += libplugin.a
main.cpp中:
#include <QtGui/QApplication>
#include <QtPlugin>
Q_IMPORT_PLUGIN(plugin)
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
...
return a.exec();
}
插件编译没有错误,我得到* u和* .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文件中。
我在做什么错?
IIRC在.pro文件应该读'LIBS + = plugin',我也不行当然,如果这能解决你所有的错误,但我敢打赌它会解决第一个链接错误。 – Chris
@Chris只能用Qt插件来思考这个帮助。我有我自己的插件,LIBS + =插件导致:“插件:没有这样的文件或目录” –