|
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::
>
> |