カスタマイズされたエディターなどを提供することで特定の種類のファイルのサポートを追加するqtクリエータープラグインに取り組んでいます。現在、TextEditor::BaseTextEditorおよびTextEditor::BaseTextEditorWidgetに基づいてエディターを生成する新しいIEditorFactoryを登録しています。
最終的には専用の蛍光ペンなどを作成して使用する予定ですが、今のところ他のqtクリエータープラグインのものを利用したいので、困ります。
特に、kateファイルをロードして利用できるTextEditor :: Internal::Highlighterを使用したいと思います。私はすでにTextEditorプラグインの他のクラスを使用しているので、
include($$QTCREATOR_SOURCES/src/plugins/texteditor/texteditor.pri)
プロジェクトファイルに追加しました。texteditor.priの中では、すべてが良さそうです
include(texteditor_dependencies.pri)
LIBS *= -l$$qtLibraryName(TextEditor)
そして、実際、私は自分のエディターをコンパイルすることができます(これはtexteditorプラグイン内のものに依存しています)。
TextEditor :: Internal :: Highlighterとの唯一の違いは、私が知る限り、texteditorプラグインのサブフォルダーにあることです。これは問題ないはずで、オブジェクトファイルはすべて同じディレクトリにあるように見えますが、私が言うと
new TextEditor::Internal::Highlighter()
(texteditor / plaintexteditor.cppで行われているように)リンカーエラーが発生します
Undefined symbols for architecture x86_64:
"TextEditor::Internal::Highlighter::Highlighter(QTextDocument*)", referenced from:
MyPlugin::MyEditorWidget::MyEditorWidget(QWidget*)in myeditor.o
MyPlugin::MyEditorWidget::MyEditorWidget(QWidget*)in myeditor.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
私は何が間違っているのですか?宣言しなければならない依存関係は他にもありますか?コンパイル中にオブジェクトファイルのフォルダを強制的にパスに含めるために使用できるコマンドはありますか?
Thnaks!