我正在尝试一起使用RtAudio和RtMidi。我有相同的文件夹RtAudio.cpp,RtAudio.h,RtHelper.h,RtMidi.cpp和RtMidi.h以及2个测试程序,midiprobe.cpp和audioprobe.cpp。
使用default command编译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
我对这类东西很陌生(大部分都是现成的框架)并且还未能解决这个问题。既然这是默认的例子,我真的很想知道下一步该做什么...... 谢谢你提前。
答案 0 :(得分:3)
缺少的符号位于CoreFoundation框架中 - 您需要添加:
-framework CoreFoundation
到您的命令行。