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

$ g++ test.cpp -lalut

(后面是正确的做法,我贴错了)。

4

2 回答 2

9

确保您已安装 alut

sudo apt-get install libalut-dev
于 2013-03-16T18:06:38.157 回答
5

您的错误消息表明您的编译器无法找到 ALUT 的头文件(一个实用工具包,可以更轻松地开始使用 OpenAL 开发)。这可能是由于以下两个原因之一:

  1. 您根本没有安装该库。在这种情况下,apt-get install请像使用 OpenAL 本身一样使用。

  2. 标头存在于系统的某个位置,但不在默认包含路径中。如果您能够在文件系统上找到该库,请确保使用-I开关使其包含目录为 g++ 所知。

通常,当使用 g++(或重要的 MinGW)链接到库时,编译期间需要对编译器工具链提供三件事:

  • 库的包含目录(头文件所在的位置) - 使用-I
  • 库文件的目录 - 使用-L
  • 库文件的名称 - 使用-l

通常在 Linux 上,前两个是在相应库包的安装过程中自动处理的。不过,如果您的库位于标准目录以外的其他位置,则必须显式指定包含和库路径。

有关 g++ 用法的简明介绍,另请参见此处

编辑:我意识到我花了太多时间来摆弄我的答案,而你的问题已经解决了。但无论如何,我希望以上信息对您有用!

于 2013-03-16T18:37:08.610 回答