Я пытаюсь переключить свой код на новый способ обработки лексеров в Scintilla.
Вот что работало в предыдущих версиях Scintilla, по-старому:
scintilla_send_message(widget, SCI_SETLEXER, SCLEX_CPP, 0);
Начиная с версии 4.4 я должен делать это по-новому. Из чтения документации я считаю, что это что-то вроде этого:
ILexer5 *lexer = CreateLexer("cpp");
scintilla_send_message(widget, SCI_SETILEXER, 0, lexer);
Но я получаю ILexer5 is undefined
и CreateLexer is undefined
. Я пытаюсь найти подходящие заголовки и статические библиотеки для добавления в свой код и список переключателей компилятора. Пожалуйста помоги.
Мои текущие переключатели GCC
включают это:
~/scintilla/bin/scintilla.a -DGTK -DSCI_LEXER -lstdc++ -I~/scintilla/include
Обратите внимание, что я использую C, а не C++.
проблема в том, что в Lexilla.h
нет include
. Такой файл есть в src
, но только на C++.
Lexilla.h теперь находится в репозитории lexilla.
По состоянию на февраль он имеет защиту #ifdef __cplusplus, так что, похоже, он также поддерживает C.
Если вы все еще сталкиваетесь с проблемами, я предлагаю вставить точное сообщение об ошибке.
В документации Scintilla 5 говорится, что библиотека lexilla теперь является отдельной библиотекой. Вы собрали ее и включили в scintilla.a? Если нет, вам следует собрать lexilla и включить его в сборку.