TranslateProject/published/201504/20150225 Linux FAQs with Answers--How to fix 'fatal error--lame or lame.h--No such file or directory' on Linux.md
2015-05-01 18:27:00 +08:00

98 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Linux 有问必答如何在Linux中修复“fatal error: lame/lame.h: No such file or directory”
================================================================================
> **提问**: 我尝试着在Linux中编译视频编码器但是编译提示出错“fatal error: lame/lame.h: No such file or directory” 我该如何修复这个错误?
下面的编译错误说明你的系统没有安装LAME库和它的开发文件。
fatal error: lame/lame.h: No such file or directory
[LAME][1]"LAME Ain't an MP3 Encoder"是一个流行的LPGL授权的MP3编码器。许多视频编码工具使用或者支持LAME如 [FFmpeg][2]、 VLC、 [Audacity][3]、 K3b、 RipperX等。
要修复这个编译错误你需要安装LAME库和开发文件按照下面的来。
### 在Debian、Ubuntu或者Linux Mint上安装LAME库和安装文件 ###
Debian和它的衍生版在基础库中已经提供了LAME库因此可以用apt-get直接安装。
$ sudo apt-get install libmp3lame-dev
### 在Fedora、CentOS/RHEL上安装LAME库和安装文件 ###
在基于RED HAT的版本中LAME在RPM Fusion的免费仓库中就有那么你需要先设置[RPM Fusion (免费)仓库][4]。
RPM Fusion设置完成后如下安装LAME开发包。
$ sudo yum --enablerepo=rpmfusion-free-updates install lame-devel
在2015年1月RPM Fusion仓库已经不可以在CentOS/RHEL 7中可用了。因此这个方法不能用在CentOS/RHEL 7 中。这时你就要从源码安装LAME库了下面会描述
### 在Debian、Ubuntu或者Linux Mint中从源码编译LAME库 ###
如果你希望用不同的编译选项安装自定义的LAME库你需要自己编译。下面是怎样在基于Debian的系统中编译和安装LAME库和它的头文件
$ sudo apt-get install gcc git
$ wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
$ tar -xzf lame-3.99.5.tar.gz
$ cd lame-3.99.5
$ ./configure --enable-static --enable-shared
$ make
$ sudo make install
注意当你运行上面的配置步骤时,你可以根据你的需求启用会禁止不同的选项。运行下面的命令查看不同的编译选项。
$ ./configure --help
共享/静态的LAME库默认安装在 /usr/local/lib。要让共享库可以被其他程序使用完成最后一步
用编辑器打开 /etc/ld.so.conf加入下面这行。
/usr/local/lib
接着运行下面的命令,这会将/usr/local/lib中的共享库添加到动态加载缓存中因此LAME库就可以被其他程序调用了。
$ sudo ldconfig
### 在Fedora或者CentOS/RHEL中从源码编译LAME库 ###
如果你的发行版(比如 CentOS 7没有提供预编译的LAME库或者你想要自定义LAME库你需要从源码自己编译。下面是在基于Red Hat的系统中编译安装LAME库的方法。
$ sudo yum install gcc git
$ wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
$ tar -xzf lame-3.99.5.tar.gz
$ cd lame-3.99.5
$ ./configure --enable-static --enable-shared
$ make
$ sudo make install
运行make之前你可以在configure中带上合适的选项自定义编译选项。你可以用下面的命令检查可用的选项
$ ./configure --help
最后你需要完成最后一步,因为安装在/usr/local/lib的LAME共享库可能在其他程序中不可用。
在/etc/ld.so.conf中添加下面这行
/usr/local/lib
接着运行下面的命令。这会添加 /usr/local/lib中的共享库(包括LAME)到动态加载缓存中,让其他程序可以访问到。
$ sudo ldconfig
![](https://farm8.staticflickr.com/7340/16534478445_abc97cb65a_c.jpg)
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/fatal-error-lame-no-such-file-or-directory.html
作者:[Dan Nanni][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni
[1]:http://lame.sourceforge.net/
[2]:http://ask.xmodulo.com/compile-ffmpeg-ubuntu-debian.html
[3]:http://xmodulo.com/how-to-cut-split-or-edit-mp3-file-on-linux.html
[4]:http://xmodulo.com/how-to-install-rpm-fusion-on-fedora.html