2012-11-17 82 views
3

我正在嘗試在SQLite中使用SOUNDEX函數。我可以用自制軟件安裝嗎,還是需要從源代碼編譯?安裝用於SQLite的SOUNDEX with Homebrew

我已經試過

brew install --fresh sqlite --with-functions

這似乎安裝擴展功能,但是我還是對我的疑問Error: no such function: SOUNDEX消息。

我還試圖修改sqlite公式,把下面的編譯選項

ENV.append 'CPPFLAGS', "-DSQLITE_SOUNDEX"

基於http://www.sqlite.org/lang_corefunc.html,但是這仍然不能解決。

理想情況下,我想避免從源代碼手動編譯SQLite,即使這意味着我需要編寫自定義自制軟件公式。

+0

您可以使用['PRAGMA compile_options'](http://www.sqlite.org/pragma.html#pragma_compile_options)檢查使用'SQLITE_SOUNDEX'編譯是否有效。 –

回答

0

這是正確的標誌,但你可能沒有運行正確的SQLite。

您的方法是正確的。添加ENV.append 'CPPFLAGS', "-DSQLITE_SOUNDEX"將用soundex進行編譯。我剛剛在我的OS X 10.8.3系統上用SQLite 3.7.16.2和homebrew對它進行了測試。或者,更多的控制,像這樣。

option 'with-soundex', 'Enable the SOUNDEX function' 

    def install 
    [ ... ] 
    ENV.append 'CPPFLAGS', "-DSQLITE_SOUNDEX" if build.include? "with-soundex" 

你確定你調用正確的sqlite3程序安裝完成後? SQLite是一個「桶只公式」;也就是說,與大多數自制軟件公式不同,它不會鏈接到/ usr/local/bin,以避免與OS X提供的sqlite衝突。您需要使用完整路徑調用自制軟件,如/usr/local/Cellar/sqlite/3.7.16.2/bin/sqlite3

$ /usr/local/Cellar/sqlite/3.7.16.2/bin/sqlite3 
SQLite version 3.7.16.2 2013-04-12 11:52:43 
Enter ".help" for instructions 
Enter SQL statements terminated with a ";" 
sqlite> select soundex('Hello, world!'); 
H464 

這將是容易的--with-同音選項添加到主自制sqlite配方,使您不必維護單獨的公式。如果你認爲有足夠的人會使用它,請前往the Homebrew issue tracker on GitHub並提出要求。