2013-03-16 111 views
4

我試圖找到讓OpenAL的到我的電腦上工作的一種方式:如何用g ++(Ubuntu)編譯OpenAL程序?

Ubuntu 12.10 (running on 2010 intel i7 Macbook Pro) 

我安裝終端的OpenAL庫:

$ sudo apt-get install libopenal-dev 

一切都進行得很順利。現在我試圖創建一個簡單的C++程序,其中包括我的圖書館:

#include <iostream> 
#include <AL/alut.h> 

using namespace std; 

int main(){ 
    cout << "Hello, world" << endl; 
} 

不管我如何努力,我來尋找如何相剋編譯它最接近++是:

$ g++ test.cpp -lalut 

這給出了以下錯誤:

test.cpp:2:21: fatal error: AL/alut.h: No such file or directory 
compilation terminated. 

有關如何讓OpenAL鏈接到我的項目的任何想法?我花了幾個小時在谷歌上,答案似乎並不存在。我可能做了一些根本性的錯誤,因爲我對Linux C++開發很神奇。謝謝。

編輯:基準變化:

$ g++ -lalut test.cpp 

$ g++ test.cpp -lalut 

(後來是這樣做的正確的方式,我貼錯了)。

+1

此外''g ++ -lalut test.cpp'不會鏈接;將其更改爲'g ++ test.cpp -lalut'。 – 2013-03-16 18:10:39

回答

7

確保您已安裝ALUT

sudo apt-get install libalut-dev 
+1

謝謝!它現在有效。不知道爲什麼這是我第一次讀到你必須安裝libalut。無論哪種情況,'g ++ test.cpp -lalut'現在都可以使用! – Sefu 2013-03-16 18:27:21

5

你的錯誤消息表明編譯器無法找到ALUT頭文件(公用工具包,使入門OpenAL的開發更容易)。這可能是由於以下兩個原因之一:

  1. 根本沒有安裝庫。在這種情況下,使用apt-get install就像您使用OpenAL本身一樣。

  2. 標題存在於系統的某處,但不在默認包含路徑中。如果您能夠在文件系統上找到磁帶庫,請確保使用-I開關使其g ++知道其包含目錄。

通常,使用G ++鏈接到一個庫時(或MinGW的東西它事項),三件事情需要在編譯過程中可用的編譯器工具鏈:

  • 圖書館的包括目錄(其中頭文件) - 使用-I
  • 庫文件的目錄 - 使用-L
  • 的庫文件(S)的名字 - 使用-l

通常在Linux上,前兩種是在相應庫包的安裝過程中自動處理的。不過,如果你的圖書館在標準目錄以外的地方休息,你必須明確指定包含和庫路徑。

有關g ++使用的簡要介紹,另請參見here

編輯︰我知道我花了太多時間擺弄我的答案,而你的問題已經解決了。但是我希望上面的信息對你有用!

+1

:) +1 – 2013-03-16 18:42:03

1

Gracias busque esta info por todos lados。

恩摘要:

命令和apt-get安裝libasound-dev的 命令和apt-get安裝libopenal-dev的 命令和apt-get安裝libalut-dev的

recuerden incluir拉書店OpenAL的連接

Project - > Properties - > C/C++ Build - > Settings - > Compiler - > Includes