プラグインがあり、アプリと静的にリンクしたい。plugin.pro ファイルには次のものがあります。
TEMPLATE = lib
CONFIG += staticlib
plugin.cpp で:
Q_EXPORT_PLUGIN2(plugin, pluginClass)
もちろん、.pro ファイルの TARGET はプラグイン名と同じです。
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();
}
プラグインはエラーなしでコンパイルされます。*.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 ファイルを含めました。
私は何を間違っていますか?