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

Portaudio C++ bindings: symbol not found in MemFunCallbackStream

本文关键字:找不到 符号 MemFunCallbackStream c++ 绑定 Portaudio      更新时间:2023-10-16

最近我发现PortAudio有c++绑定,所以为了保持美观和面向对象,我从普通的PortAudio C函数转换为c++绑定。然而,我在使用回调函数时遇到了麻烦。我尝试用以下方式创建一个流:

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

这个调用是在outputchannel类的方法中进行的。这个相同的类包含应该作为回调函数的方法,因此我传递给memfuncallbackstream方法的' This '。然而,在构建时,链接器给出一个错误:

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库已加载,因为其他一些(诊断)方法工作。是什么导致了这个错误?

啊,我觉得自己很蠢。不知何故,库不再是链接到我的应用程序,尽管它以前是。所以这个错误毕竟是由于缺少一个库。问题解决了。