我正在尝试使用SQLite的SOUNDEX功能。我可以用自制软件安装它,还是需要从源代码编译?
我试过
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 :(得分:0)
这是正确的标志,但你可能没有运行正确的sqlite。
你的方法是正确的。添加ENV.append 'CPPFLAGS', "-DSQLITE_SOUNDEX"
将使用soundex编译它。我刚刚使用SQLite 3.7.16.2和我的OS X 10.8.3系统上的自制程序进行了测试。或者,为了更多的控制,像这样。
option 'with-soundex', 'Enable the SOUNDEX function'
def install
[ ... ]
ENV.append 'CPPFLAGS', "-DSQLITE_SOUNDEX" if build.include? "with-soundex"
您确定在安装后正在调用正确的sqlite3
程序吗? SQLite是一个“keg-only”公式;也就是说,与大多数自制程序公式不同,它不会链接到/ 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
在主自制sqlite
公式中添加--with-soundex选项很容易,因此您不必维护单独的公式。如果你认为有足够的人会使用它,请转到the Homebrew issue tracker on GitHub并提出请求。