Portaudio C ++绑定:MemFunCallbackStream中找不到符号

时间:2013-01-08 16:11:34

标签: c++ binding callback portaudio

最近我发现PortAudio有C ++绑定,所以为了保持良好和面向对象,我正在从普通的PortAudio C函数转换为C ++绑定。但是,我遇到了回调函数的问题。 我尝试以下列方式创建流:

stream = new portaudio::MemFunCallbackStream<OutputChannel>(params, *this, &OutputChannel::output);

此调用是在OutputChannel类的方法中进行的。这个类包含应该作为回调函数的方法,因此'this'我将传递给MemFunCallbackStream方法。 但是在构建时,链接器会出错:

Undefined symbols for architecture x86_64:
  "_Pa_OpenStream", referenced from:
      portaudio::MemFunCallbackStream<OutputChannel>::open(portaudio::StreamParameters const&)in outputchannel.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

我确定PortAudio库已加载,因为其他(诊断)方法有效。 可能导致此错误的原因是什么?

1 个答案:

答案 0 :(得分:0)

唉,我觉得很蠢。不知何故,该库不再链接到我的应用程序,虽然它是以前。所以错误是由于缺少库而造成的。问题解决了。