Portaudio c++绑定:在MemFunCallbackStream中找不到符号
Portaudio C++ bindings: symbol not found in MemFunCallbackStream
最近我发现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库已加载,因为其他一些(诊断)方法做工作。是什么导致了这个错误?
啊,我觉得自己很蠢。不知何故,库不再是链接到我的应用程序,尽管它以前是。所以这个错误毕竟是由于缺少一个库。问题解决了。
相关文章:
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 编译 GCC-5.0 OS X 狮子 dyld:找不到符号:__ZNKSt11logic_error4whatEv
- 在 Mac 上C++编译代码时处理“dyld:惰性符号绑定失败:找不到符号”错误
- 与 dlopen 的动态链接:找不到符号
- MacOS LD:找不到符号(x86_64)
- dyld:惰性符号绑定失败:找不到符号:_yylex
- OSX MOJAVE -LD:架构X86_64 clang找不到符号:错误:链接器命令失败,出口代码1
- LD:架构x86_64 clang找不到符号:错误:链接器命令失败,出口代码1(使用-v to See
- GCC LD:构造I386找不到符号
- dyld:惰性符号绑定失败:找不到符号.预期在:平面命名空间
- 链接库时找不到符号
- sql::mysql::get_driver_instance()找不到符号
- 在我的嵌套 for 循环中找不到符号"k"?
- 惰性符号绑定失败:找不到符号
- 链接器链接正确的文件,但找不到符号
- 链接器读取库,但在其中找不到符号?未解析的外部符号,但仅适用于 Win32 而不是 x64
- Ctypes 在使用 CMake 创建的共享库中找不到符号
- G++ LD:在体系结构x86_64找不到符号
- ShiftVector 模板类 - "找不到符号"