From: pwm <pw...@ia...> - 2012-02-09 10:23:14
|
So - have you done any ASAP search on Google? Have you done any ASAP check what libraries you are linking? Exactly what, have you ASAP actually done? By the way - when you get a linker error, what is your ASAP view regarding compiler or linker problem? Did you ASAP consider telling us what your linker was ASAP instructed to do? /Per W On Thu, 9 Feb 2012, sounak dey wrote: > 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:: > > |