歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在Linux中修復“fatal error: lame/lame.h: No such file or dir 錯誤

在Linux中修復“fatal error: lame/lame.h: No such file or dir 錯誤

日期:2017/2/28 14:02:04   编辑:Linux教程

提問: 我嘗試著在Linux中編譯視頻編碼器,但是編譯提示出錯:“fatal error: lame/lame.h: No such file or directory”, 我該如何修復這個錯誤?

下面的編譯錯誤說明你的系統沒有安裝LAME庫和它的開發文件。

  1. fatal error: lame/lame.h:No such file or directory

LAME("LAME Ain't an MP3 Encoder")是一個流行的LPGL授權的MP3編碼器。許多視頻編碼工具使用或者支持LAME,如 FFmpeg、 VLC、 Audacity、 K3b、 RipperX等。

要修復這個編譯錯誤,你需要安裝LAME庫和開發文件,按照下面的來。

在Debian、Ubuntu或者Linux Mint上安裝LAME庫和安裝文件

Debian和它的衍生版在基礎庫中已經提供了LAME庫,因此可以用apt-get直接安裝。

  1. $ sudo apt-get install libmp3lame-dev

在Fedora、CentOS/RHEL上安裝LAME庫和安裝文件

在基於Red Hat的版本中,LAME在RPM Fusion的免費倉庫中就有,那麼你需要先設置RPM Fusion (免費)倉庫。

RPM Fusion設置完成後,如下安裝LAME開發包。

  1. $ 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庫(和它的頭文件)。

  1. $ sudo apt-get install gcc git
  2. $ wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
  3. $ tar -xzf lame-3.99.5.tar.gz
  4. $ cd lame-3.99.5
  5. $ ./configure --enable-static--enable-shared
  6. $ make
  7. $ sudo make install

注意當你運行上面的配置步驟時,你可以根據你的需求啟用會禁止不同的選項。運行下面的命令查看不同的編譯選項。

  1. $ ./configure --help

共享/靜態的LAME庫默認安裝在 /usr/local/lib。要讓共享庫可以被其他程序使用,完成最後一步:

用編輯器打開 /etc/ld.so.conf,加入下面這行。

  1. /usr/local/lib

接著運行下面的命令,這會將/usr/local/lib中的共享庫添加到動態加載緩存中,因此LAME庫就可以被其他程序調用了。

  1. $ sudo ldconfig

在Fedora或者CentOS/RHEL中從源碼編譯LAME庫

如果你的發行版(比如 CentOS 7)沒有提供預編譯的LAME庫,或者你想要自定義LAME庫,你需要從源碼自己編譯。下面是在基於Red Hat的系統中編譯安裝LAME庫的方法。

  1. $ sudo yum install gcc git
  2. $ wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
  3. $ tar -xzf lame-3.99.5.tar.gz
  4. $ cd lame-3.99.5
  5. $ ./configure --enable-static--enable-shared
  6. $ make
  7. $ sudo make install

運行make之前,你可以在configure中帶上合適的選項自定義編譯選項。你可以用下面的命令檢查可用的選項:

  1. $ ./configure --help

最後你需要完成最後一步,因為安裝在/usr/local/lib的LAME共享庫可能在其他程序中不可用。

在/etc/ld.so.conf中添加下面這行:

  1. /usr/local/lib

接著運行下面的命令。這會添加 /usr/local/lib中的共享庫(包括LAME)到動態加載緩存中,讓其他程序可以訪問到。

  1. $ sudo ldconfig

Copyright © Linux教程網 All Rights Reserved