コンパイル エラーが発生しないが、未定義の参照が発生するという事実は、通常、プロジェクトがヘッダー ファイルの場所を認識しているが、コンパイル済みのソース コードを含むライブラリの場所を認識していないことを意味します。
Qt Creator 用のプラグインを作成したことはありませんが、そのソース コード構造をざっと見てみると、次のオプションが表示されます。
オプション A)
projectexplorer.proの下に Qt Creator のソースにファイルがありますsrc/plugins/projectexplorer。ProjectExplorer.lib (および .dll または .a) を取得し、このライブラリを参照するために、そのプロジェクトを手動でビルドできます。
例: ライブラリが .pro ファイルと同じディレクトリに作成され (そのようなものかどうかはわかりません)、Qt Creator のソースの下にプラグインを作成したと仮定すると、次のように変数src/plugins/mypluginを定義します。LIBS
LIBS += -L../projectexplorer \
-lProjectExplorer
最初の行は「../projectexplorer」を追加のライブラリ ディレクトリとして追加し、2 行目は「ProjectExplorer」をライブラリとして追加して、定義されたディレクトリのいずれかを検索します (Windows では .lib などの OS 固有のファイル拡張子が自動的に追加されます)。 )。
プロジェクトまたはライブラリが別の場所にある場合は、それに応じて最初の行を変更する必要があります。
オプション B)
および変数を使用して、ディレクトリのソース ファイルとヘッダー ファイルをprojectexplorer独自の .pro ファイルに含めることができます。ただし、これが他のプラグイン (projectexplorer 自体を含む) に干渉しないかどうかはわかりません。HEADERSSOURCES
オプション C)
projectexplorer.proファイルをインクルードして、最初にプロジェクト エクスプローラー ライブラリをビルドし、次に独自のプラグインをビルドするマスター プロジェクトを作成する方法があると思われます。独自のプロジェクトがリンクされる前に Project Explorer ライブラリがビルドされて最新の状態になるため、これが最も安全な方法です。ただし、これに関する経験は限られています。
これを読んでいる人がこのオプションについて詳しく説明できる場合は、自由に編集するか、独自の回答を提供してください。