From: sounak d. <dey...@gm...> - 2012-02-09 07:29:11
|
pls help me resolve the linker error while working with OpenAl 1.1 in dev c++ here is the code:::::::::::::::::::::::: #include <iostream> #include <stdio.h> #include <windows.h> #include "Al/al.h" #include "Al/alc.h" //#include <al.h> //#include <alc.h> using namespace std; using namespace std; int main() { ALCdevice *dev[2]; ALCcontext *ctx; ALuint source, buffers[3]; char data[5000]; ALuint buf; ALint val; dev[0] = alcOpenDevice(NULL); ctx = alcCreateContext(dev[0], NULL); alcMakeContextCurrent(ctx); alGenSources(1, &source); alGenBuffers(3, buffers); /* Setup some initial silent data to play out of the source */ alBufferData(buffers[0], AL_FORMAT_MONO16, data, sizeof(data), 22050); alBufferData(buffers[1], AL_FORMAT_MONO16, data, sizeof(data), 22050); alBufferData(buffers[2], AL_FORMAT_MONO16, data, sizeof(data), 22050); alSourceQueueBuffers(source, 3, buffers); /* If you don't need 3D spatialization, this should help processing time */ alDistanceModel(AL_NONE); dev[1] = alcCaptureOpenDevice(NULL, 22050, AL_FORMAT_MONO16, sizeof(data)/2); /* Start playback and capture, and enter the audio loop */ alSourcePlay(source); alcCaptureStart(dev[1]); while(1) { /* Check if any queued buffers are finished */ alGetSourcei(source, AL_BUFFERS_PROCESSED, &val); if(val <= 0) continue; /* Check how much audio data has been captured (note that 'val' is the * number of frames, not bytes) */ alcGetIntegerv(dev[1], ALC_CAPTURE_SAMPLES, 1, &val); /* Read the captured audio */ alcCaptureSamples(dev[1], data, val); /* Pop the oldest finished buffer, fill it with the new capture data, then re-queue it to play on the source */ alSourceUnqueueBuffers(source, 1, &buf); alBufferData(buf, AL_FORMAT_MONO16, data, val*2 /* bytes here, not frames */, 22050); alSourceQueueBuffers(source, 1, &buf); /* Make sure the source is still playing */ alGetSourcei(source, AL_SOURCE_STATE, &val); if(val != AL_PLAYING) { alSourcePlay(source); } } /* Shutdown and cleanup */ alcCaptureStop(dev[1]); alcCaptureCloseDevice(dev[1]); alSourceStop(source); alDeleteSources(1, &source); alDeleteBuffers(3, buffers); alcMakeContextCurrent(NULL); alcDestroyContext(ctx); alcCloseDevice(dev[0]); return 0; } errors are such as::::::::::::::::::::::: [Linker error] undefined reference to `_imp__alcOpenDevice' [Linker error] undefined reference to `_imp__alcCreateContext' [Linker error] undefined reference to `_imp__alcMakeContextCurrent' and many others all are linker error:: |