我正在開發一個qt creator插件,它通過提供自定義編輯器等來增加對某些類型文件的支持。現在它註冊一個新的IEditorFactory,它生成的編輯器基於TextEditor :: BaseTextEditor和TextEditor :: BaseTextEditorWidget。鏈接Qt Creator插件編輯器/熒光筆
最終我會創建和使用專門的熒光筆和其他東西,但現在我想利用其他qt創作插件的東西,這就是我遇到麻煩的地方。
特別是我想使用TextEditor :: Internal :: Highlighter,它可以加載和使用kate文件。我已經在使用TextEditor插件中的其他類,所以我有
include($$QTCREATOR_SOURCES/src/plugins/texteditor/texteditor.pri)
添加到我的項目文件中。裏面texteditor.pri一切似乎都很好
include(texteditor_dependencies.pri)
LIBS *= -l$$qtLibraryName(TextEditor)
,事實上,我能夠編譯我的編輯器(它是依賴於文本編輯插件裏面的東西)。
與TextEditor :: Internal :: Highlighter的唯一區別 - 就我所知 - 就是它位於texteditor插件的子文件夾中。這應該是罰款,並在目標文件似乎在同一個目錄下的所有土地,但是當我說
new TextEditor::Internal::Highlighter()
(就像在文本編輯/ 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!