首頁 > 軟體

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

2020-06-16 18:01:38

提問: 我嘗試著在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

FedoraCentOS/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

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-04/116727.htm


IT145.com E-mail:sddin#qq.com