Пользовательская компиляция 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