在您的系统上找不到 sndfile,因此 audioinfo 无法正常工作(brew octave 4.0.0 mac)

sndfile not found on your system and thus audioinfo is not functional (brew octave 4.0.0 mac)

在 Mac OS X 上使用 brew upgrade 从 3.8.2 升级到 Octave 4.0.0 后,我在尝试使用 wavread 时遇到此错误:

error: sndfile not found on your system and thus audioinfo is not functional
error: called from
    wavread at line 91 column 8

我尝试重新安装 libsndfile、port audio,甚至 octave,但仍然无法解决这个问题。

这是因为 Octave 的自制程序没有将 portaudio 和 libsndfile 列为依赖项。 Homebrew 在安装期间似乎 运行 一个特殊版本的 pkg-config,它只能访问公式中明确列为依赖项的库。

我设法让它工作

brew edit octave

然后在公式顶部附近的某处添加这些行:

depends_on "libsndfile"
depends_on "portaudio"

这些行稍微低一点,正在构造 configure 命令的 args 字符串

args << "--with-portaudio"
args << "--with-sndfile"

然后安装 Octave 并确保它是从源代码构建的。像

brew install octave --build-from-source --with-gui

理想情况下,portaudio 和 sndfile 将通过 --with-audio 之类的开关启用。如果有机会,我会向 homebrew 提交拉取请求并进行必要的更改。

编辑:2015 年 10 月 12 日

这现在是 homebrew-science tap 中的拉取请求的主题 https://github.com/Homebrew/homebrew-science/pull/2875