2

我正在尝试同时使用 RtAudio 和 RtMidi。我在同一个文件夹中包含 RtAudio.cpp、RtAudio.h、RtHelper.h、RtMidi.cpp 和 RtMidi.h 以及 2 个测试程序 midiprobe.cpp 和 audioprobe.cpp。

使用默认命令编译 midiprobe 是可行的,但是当我尝试对audioprobe执行相同操作以测试 RtAudio 时,我得到了错误。

这是我用来编译的:

g++ -Wall -D__MACOSX_CORE__ -o audioprobe audioprobe.cpp RtAudio.cpp -framework CoreAudio -lpthread

这些是错误:

Undefined symbols for architecture x86_64:
 "_CFRelease", referenced from:
  RtApiCore::getDeviceInfo(unsigned int)in cc89M9Ki.o
"_CFStringGetCString", referenced from:
  RtApiCore::getDeviceInfo(unsigned int)in cc89M9Ki.o
"_CFStringGetLength", referenced from:
  RtApiCore::getDeviceInfo(unsigned int)in cc89M9Ki.o
"_CFStringGetSystemEncoding", referenced from:
  RtApiCore::getDeviceInfo(unsigned int)in cc89M9Ki.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

我对这类东西很陌生(到目前为止,大部分框架都是现成的)并且还没有弄清楚这一点。由于它是默认示例,我真的不知道下一步该做什么......在此先感谢。

4

1 回答 1

3

缺少的符号在 CoreFoundation 框架中 - 您需要添加:

-framework CoreFoundation

到你的命令行。

于 2012-12-03T13:22:31.363 回答