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

时间:2013-03-16 17:58:48

标签: c++ linux ubuntu linker openal

我正在尝试找到一种让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

(后者是正确的做法,我发错了)。

3 个答案:

答案 0 :(得分:7)

确保安装了alut

sudo apt-get install libalut-dev

答案 1 :(得分:5)

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

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

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

  3. 通常,当使用g ++链接到库(或MinGW用于它的重要性)时,编译工具链在编译期间需要有三件事情可用:

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

    通常在Linux上,前两个是在相应库包的安装过程中自动处理的。但是,如果您的库位于标准目录以外的其他位置,则必须明确指定include和library path。

    有关g ++用法的简要介绍,另请参阅here

    编辑:我意识到我花了一点时间摆弄我的答案,而你的问题已经解决了。但我希望上面的信息对你有用!

答案 2 :(得分:1)

Gracias busque esta info por todos lados。

En resumen:

sudo apt-get install libasound-dev sudo apt-get install libopenal-dev sudo apt-get install libalut-dev

recuerden incluir la libreria openAL en

项目 - &gt;属性 - &gt; C / C ++ Build - &gt;设置 - &gt;编译器 - &gt;包括