Как правильно построить расширение SQLite FTS в виде DLL? - PullRequest
0 голосов
/ 14 октября 2010

Каков рекомендуемый способ создания расширения SQLite FTS3 в виде Windows DLL?

У меня возникла следующая проблема:

fts3_tokenizer.obj: ошибка LNK2005: sqlite3_api уже определен в fts3.obj

Макрос SQLITE_EXTENSION_INIT1 используется как в fts3_tokenizer.c, так и в fts3.c. Он создает глобальную переменную с именем sqlite3_api, и, поскольку это делается в двух местах, есть две глобальные переменные с одинаковыми именами. Отсюда и проблема.

Примечание. Несмотря на то, что FTS можно скомпилировать в SQLite, мне нужна библиотека DLL, чтобы я мог динамически загружать расширение в среды, где у меня есть предварительно скомпилированный SQLite, в котором нет полнотекстового поиска.

1 Ответ

2 голосов
/ 09 декабря 2010

Основные инструкции: http://eli.thegreenplace.net/2009/09/23/compiling-sqlite-on-windows/

Но используйте следующие определения препроцессора:

SQLITE_ENABLE_COLUMN_METADATA

SQLITE_ENABLE_FTS3

SQLITE_ENABLE_FTS3_PARENTHESIS

SQLITE_ENABLE_RTREE

игнорировать int / i64 и всплывающие / двойные предупреждения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...