4

我正在尝试将 SOUNDEX 函数与 SQLite 一起使用。我可以用自制软件安装它,还是需要从源代码编译?

我试过了

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,即使这意味着我需要编写自定义自制公式。

4

1 回答 1

0

那是正确的标志,但您可能没有运行正确的 sqlite。

你的方法是正确的。添加它ENV.append 'CPPFLAGS', "-DSQLITE_SOUNDEX"会用 soundex 编译它。我刚刚在我的 OS X 10.8.3 系统上使用 SQLite 3.7.16.2 和自制软件对其进行了测试。或者,为了更多的控制,像这样。

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

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

您确定sqlite3安装后调用的是正确的程序吗?SQLite 是一个“仅桶”的公式;也就是说,与大多数自制程序公式不同,它不会链接到 /usr/local/bin,以避免sqlite与 OS X 提供的冲突。您需要使用完整路径调用自制程序,例如/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-soundex 选项很容易sqlite,因此您不必维护单独的公式。如果您认为有足够多的人会使用它,请前往GitHub 上的 Homebrew 问题跟踪器并提出请求。

于 2013-04-25T03:46:44.750 回答