2013-04-09 191 views
2

我試圖從源碼構建女妖。我跑autogen.sh和這裏的(一些)輸出:構建女妖:缺少依賴關係

configure: error: Package requirements (gstreamer-0.10 >= 0.10.26 
    gstreamer-base-0.10 >= 0.10.26 
    gstreamer-plugins-base-0.10 >= 0.10.26 
    gstreamer-controller-0.10 >= 0.10.26 
    gstreamer-dataprotocol-0.10 >= 0.10.26 
    gstreamer-fft-0.10 >= 0.10.26) were not met: 

No package 'gstreamer-0.10' found 
No package 'gstreamer-base-0.10' found 
No package 'gstreamer-plugins-base-0.10' found 
No package 'gstreamer-controller-0.10' found 
No package 'gstreamer-dataprotocol-0.10' found 
No package 'gstreamer-fft-0.10' found 

Consider adjusting the PKG_CONFIG_PATH environment variable if you 
installed software in a non-standard prefix. 

Alternatively, you may set the environment variables GST_CFLAGS 
and GST_LIBS to avoid the need to call pkg-config. 
See the pkg-config man page for more details. 
Error: Could not run ./configure, which is required to configure banshee 

我已經跑sudo apt-get build-dep banshee,所以我不知道如何解決這個問題。

回答

7

存在不同類型的依賴性,編譯時間依賴性運行時依賴性。你通常需要更多的依賴來構建一個程序,而不是你需要運行的程序。例如,運行程序可能需要共享庫。構建程序也可能需要頭文件。當你安裝banshee時,你通常會安裝所有的運行時間依賴關係,但不包括構建時間依賴關係。由於您使用的是apt-get,因此您應該調查需要安裝哪些軟件包才能獲得所需的構建依賴關係。

您收到的錯誤消息來自名爲pkg-config的程序。它通常用於跟蹤構建依賴關係。有些庫可能會在不同的系統上需要不同的編譯器標誌,所以pkg-config有一個知道如何使用的庫的目錄。這裏Banshee的構建系統調用pkg-config爲了找到使用gstreamer庫的正確標誌,但由於沒有安裝gstreamer的開發文件,pkg-config不知道如何使用它們。一旦安裝了使用pkg-config的軟件包的開發文件,可以通過運行pkg-config來請求標誌,例如pkg-config --cflags --libs gstreamer-0.10將返回gstreamer-0.10庫的預處理器,編譯器和鏈接標誌。

pkg-config使用的文件通常名爲name-of-library.pc。使用您的軟件包管理器搜索文件,例如gstreamer-0.10.pc,gstreamer-base-0.10.pc等,以查找pkg-config無法找到的所有軟件包。使用apt-get的系統通常有一個稱爲apt-file的工具(雖然不一定是默認安裝的),可用於查詢軟件包管理器以獲取提供特定文件的軟件包的名稱,例如apt-file search gstreamer-0.10.pc。許多發行版(如DebianUbuntu)還具有支持基於文件名搜索包的Web界面。

您有時可以通過運行apt-get build-dep name-of-package來安裝所需的構建依賴關係。它將安裝構建程序所需的軟件包。但是,這將安裝構建包管理器分發的包的版本的需求。您正在構建的版本可能具有不同的依賴關係,但如果需求相同,那麼通常應該爲您提供所需的內容。

1

顯然,馬庫斯的答案是真棒,但如果你想要去的地步,答案是:donesudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev

我會馬上更新女妖的網站。