所以一般来说我的代码非常简单 - 我正在尝试编写Microphone Echo程序,这是它的开始(因为在我看来 - 我对OpenAL很谨慎)
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <al.h>
#include <alc.h>
#include <alut.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cin.get();
return 0;
}
void BlockingCapture(ALCdevice *mCaptureDevice, ALCubyte *pBuffer,
ALCint iSamplesToGet)
{
ALCint capturedSamples = 0;
while(capturedSamples < iSamplesToGet)
{
ALCint avail;
alcGetIntegerv(mCaptureDevice, ALC_CAPTURE_SAMPLES, 1, &avail);
if(avail > 0/*or some threshold*/)
{
avail = min(avail, iSamplesToGet-capturedSamples);
alcCaptureSamples(mCaptureDevice, pBuffer, avail);
capturedSamples += avail;
pBuffer += avail;
}
else
Sleep(0);
}
}
当我尝试编译它时,它给了我3个错误
1)Error 1 error LNK2019: ссылка на неразрешенный внешний символ __imp__alcCaptureSamples в функции "void __cdecl BlockingCapture(struct ALCdevice_struct *,unsigned char *,int)" (?BlockingCapture@@YAXPAUALCdevice_struct@@PAEH@Z) HelloOpenALMic.obj HelloOpenALMic
2)Error 2 error LNK2019: ссылка на неразрешенный внешний символ __imp__alcGetIntegerv в функции "void __cdecl BlockingCapture(struct ALCdevice_struct *,unsigned char *,int)" (?BlockingCapture@@YAXPAUALCdevice_struct@@PAEH@Z) HelloOpenALMic.obj HelloOpenALMic
3)Error 3 fatal error LNK1120: 2 неразрешенных внешних элементов C:\Users\Avesta\Documents\Visual Studio 2008\Projects\OJ\OJ\V3\Debug\HelloOpenALMic.exe HelloOpenALMic
BTW :(我已将此post作为我的代码的起点。)
如何摆脱它们?
答案 0 :(得分:1)
您需要将OpenAL库链接到您的应用程序。
进入项目属性 - &gt; Linker-&gt;输入并将openal32.lib添加到列表中。