尝试在 Ubuntu 16 上安装 libsndfile

Trying to install libsndfile on Ubuntu 16

我试过了运行

sudo apt-get install libsndfile
> E: Unable to locate package libsndfile

那我试试

sudo apt-get install libsndfile1

它安装了,但是在哪里,如何安装?

find /usr/ -name libsndfile*
> /usr/lib/x86_64-linux-gnu/libsndfile.so.1
> /usr/lib/x86_64-linux-gnu/libsndfile.so.1.0.25

归根结底,我的目标是让库为 ruby 工作:

gem install sndfile
gem install ruby-audio

当我尝试安装 ruby-audio 时,我得到:

extconf.rb:21:in `<main>':   Can't find libsndfile (http://www.mega-nerd.com/libsndfile/) (RuntimeError)

所以由于某种原因,库没有正确安装。

当您想针对库编译某些内容时,您不仅需要库本身(通常是一个或多个 .so 类型文件),还需要描述库如何工作的头文件。这些通常被省略,除非您安装了 -dev 版本的软件包:

apt-get install libsndfile-dev

这应该给 Ruby extconf.rb 足够的信息来编译和 link 针对该库。