3

プラグインがあり、アプリと静的にリンクしたい。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 ファイルを含めました。

私は何を間違っていますか?

4

1 に答える 1

2

プラグイン .pro ファイルで、次のコードを使用します。

CONFIG += plugin static

それ以外の

CONFIG += staticlib
于 2012-12-30T08:30:34.037 に答える