soundex機能を使用してsqliteをコンパイルする sqliteのカスタムコンパイルを行う方法を学びました。これは、機能テストでsqliteのsoundexを使用するという私の目標に向けた一歩でしたが、私はまだそこにいないことがわかりました。既存の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
をインストールしてsqliteソースコードディレクトリでphpize
を実行すると、次のようになります。
Config.m4が見つかりません
私の手順の修正は大歓迎ですが、行きたい場所にたどり着く方法について、もう少し完全なリファレンスを見つけたいと思います。私はただ無知で、愚かではありません。たとえば、sqlite機能SQLITE_SOUNDEX
の前にD
が必要であることがどこでわかりましたか?
[編集:部分的な回答= GNUコンパイラ の使用、CFLAGSがgccオプションであり、プリプロセッサオプションを使用し、sqlite機能がマクロと見なされます。]
CompilingEasyHowTo および CompilingSoftware では不十分です。 Building PHP extension もあまり役に立たないようです。
Ubuntuには、SQLite用の2つのパッケージがあります:sqlite
とsqlite3
。 2番目を使用する場合は、その関数をサポートしてコンパイルされます(他のバージョンにも存在するかどうかはわかりません...)
sqlite> SELECT SOUNDEX("John"), SOUNDEX("Joahn");
J500|J500
したがって、最初に2番目のバージョンを使用してみてください。
$ Sudo apt-get remove sqlite
$ Sudo apt-get install sqlite3
今あなたに質問:私はそれをコンパイルしようとしました、そしてそれはうまくいくようです:
SQLiteソースコードを ここ からダウンロードします。 sqlite-autoconf
Configureコマンドを抽出して実行します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