Если вы создаете объединение с включенным icu или просто с расширением icu, зависит от того, что вы хотите сделать с icu.
Если вам нужен токенайзер icu (для выполнения fts), вам нужно создать объединение, если вам просто нужны функции icu в виде списка https://www.sqlite.org/cgi/src/dir?ci=6cb537bdce85e088&name=ext/icu, тогда достаточно расширения icu.
При создании расширения icu я не могу назвать его libSqliteIcu.so
, так как этот readme сказал b / c, когда я загружаю его, я получил эту ошибку
sqlite> .load ./libSqliteIcu.so
Error: dlsym(0x7fa073e02c60, sqlite3_sqliteicu_init): symbol not found
Задав вопрос в sqlit mail list Мне сказали, что я подтверждаю.
Имя символа - sqlite3_icu_init. При загрузке модуля lib<x>.so
вызывается символ sqlite3_<x>_init
. Вам нужно либо (а) переименовать общую библиотеку на правильное имя (libicu.so
), либо передать имя функции инициализации (sqlite3_icu_init) загрузчику при загрузке модуля, либо (б) изменить имя * Функция 1018 * в источнике icu.c
соответствует имени, которое ищет загрузчик модулей ...