我使用以下命令成功地安装了OpenAL:
yum install freealut freealut-devel 但是,在此之后,我添加了一些c++代码来处理这个库,如下所示:
#include <AL/al.h>
#include <AL/alc.h>
#include <AL/alut.h>
void init_al()
{
ALCdevice *dev = NULL;
ALCcontext *ctx = NULL;
const char *defname = alcGetString(NULL, ALC_DEFAULT_DEVICE_SPECIFIER);
std::cout << "Default device: " << defname << std::endl;
dev = alcOpenDevice(defname);
ctx = alcCreateContext(dev, NULL);
alcMakeContextCurrent(ctx);
alGenBuffers(1, &buf);
/* Fill buffer with Sine-Wave */
freq = 1440.f;
seconds = 0.2;
sample_rate = 22050;
buf_size = 6000;
samples = new short[buf_size];
for(int i=0; i<buf_size; ++i) {
samples[i] = 32760 * sin( (2.f*float(M_PI)*freq)/sample_rate * i );
}
/* Download buffer to OpenAL */
alBufferData(buf, AL_FORMAT_MONO16, samples, buf_size, sample_rate);
/* Set-up sound source and play buffer */
src = 0;
alGenSources(1, &src);
alSourcei(src, AL_BUFFER, buf);
alGenBuffers(1, &buf);
/* Fill buffer with Sine-Wave */
freq = 1000.f;
seconds = 0.2;
sample_rate = 22050;
buf_size = 12000;
samples = new short[buf_size];
float add=1;
for(int i=0; i<buf_size; ++i) {
samples[i] = 32760 * sin( (2.f*float(M_PI)*freq)/sample_rate * i );
}
/* Download buffer to OpenAL */
alBufferData(buf, AL_FORMAT_MONO16, samples, buf_size, sample_rate);
/* Set-up sound source and play buffer */
src2 = 0;
alGenSources(1, &src2);
alSourcei(src2, AL_BUFFER, buf);
}我认为我的问题在于可以添加到Eclipse项目规范中的链接器,我包括一个链接器、alut、,但它也表明了一个错误。我有什么问题?
发布于 2013-08-12 21:32:34
这些是标准的开放头--不确定为什么要使用alut或sure alut。
#include <AL/al.h>
#include <AL/alc.h>
// #include <OpenAL/al.h> // apple only
// #include <OpenAL/alc.h> // apple only我使用标准的openal,它的链接器标志是-lopenal。
不过,我还没有使用免费的。它的链接标志可能是
alut
or maybe freealut因此,它的编译行标志应该是-l,然后是-lalut中的标志。
所提供的代码不完整-它缺少许多var定义,因此无法在我的末尾编译。
https://stackoverflow.com/questions/18190578
复制相似问题