如何使用g++(Ubuntu)编译OpenAL程序?

4

我正在寻找一种在我的计算机上使用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++ 编译它的方法是:
$ 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

to

$ g++ test.cpp -lalut

(后者才是正确的方法,我发布时出错了。)

1
此外,g++ -lalut test.cpp 无法链接;请将其更改为 g++ test.cpp -lalut - user529758
2个回答

9

确保您已安装了alut

sudo apt-get install libalut-dev

1
谢谢!现在它可以工作了。不确定为什么这是我第一次读到你还必须安装libalut。无论如何,现在"g++ test.cpp -lalut"可以工作了! - Sefu

5
您的错误信息表明,编译器无法找到ALUT头文件(一个实用工具包,可使得使用OpenAL进行开发更加容易)。这可能由以下两个原因之一引起:
  1. 您根本没有安装该库。在这种情况下,请像安装OpenAL本身一样使用“apt-get install”命令。
  2. 该头文件存在于系统的某个位置,但不在默认的包含路径中。如果您能够在文件系统上找到该库,请确保使用“-I”开关向g++指定其包含目录。
通常,在使用g++(或MinGW)链接库时,编译器工具链需要在编译过程中提供三个东西:
  • 库的包含目录(其中包含头文件)- 使用“-I”
  • 库文件的目录 - 使用“-L”
  • 库文件的名称 - 使用“-l”
通常情况下,在Linux上,前两个会在适当的库包安装过程中自动处理。然而,如果您的库不在标准目录中,您必须显式指定包含和库路径。
有关使用g++的简洁介绍,请参见这里编辑:我意识到我花了太多时间来调整我的答案,而您的问题已经得到解决。但我仍希望上述信息对您有用!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接