Пользовательская компиляция sqlite как php так

В Компиляции sqlite с функцией soundex я узнал, как сделать пользовательскую компиляцию sqlite. Хотя это был шаг к моей цели использования soundex sqlite в функциональном тесте, я обнаружил, что я еще не там. Мне нужно заменить существующий sqlite.so, Различные попытки изменить эту команду:

$ sudo ./configure --prefix=/usr --disable-static CFLAGS="-g -O2 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_SOUNDEX"

провалился. Установка php5-dev и работает phpize в каталоге исходного кода sqlite приводит к

Не могу найти config.m4

Хотя исправления в моей процедуре будут приветствоваться, я также хотел бы найти более полные ссылки о том, как добраться туда, куда я хочу пойти. Я просто невежественен, а не глуп. Например, где бы я узнал, что D потребовалось до возможности sqlite SQLITE_SOUNDEX?

[РЕДАКТИРОВАТЬ: частичный ответ = использование компиляторов GNU, предполагая, что я знал, что CFLAGS - это параметры gcc, чтобы использовать параметр препроцессора, и что функцию sqlite следует рассматривать как макрос.]

CompilingEasyHowTo и CompilingSoftware недостаточно. Создание расширений PHP, похоже, тоже мало поможет.

1 ответ

Решение

В Ubuntu у вас есть два пакета для SQLite: sqlite а также sqlite3, Если вы используете второй, он скомпилирован с поддержкой этой функции (не уверен, существует ли он в другой версии...)

sqlite> SELECT SOUNDEX("John"), SOUNDEX("Joahn");
J500|J500

Итак, сначала попробуйте использовать вторую версию:

$ sudo apt-get remove sqlite
$ sudo apt-get install sqlite3

Теперь к вам вопрос: я попытался скомпилировать его и, кажется, работает:

  • Загрузите исходный код SQLite здесь. я использовал sqlite-autoconf

  • Извлеките и запустите команду настройки без sudo. Это понадобится вам позже

    $ ./configure --prefix=/usr --disable-static CFLAGS="-g -O2 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_SOUNDEX"
    
  • Скомпилируйте SQLite

    $ make
    
  • Попробуй это

    $ ./sqlite3
    sqlite> SELECT SOUNDEX("John"), SOUNDEX("Joahn");
    J500|J500
    
  • Установите его в своей системе

    $ sudo make install
    
Другие вопросы по тегам