2012-12-03 36 views
2

我試圖一起使用RtAudio和RtMidi。我有相同的文件夾RtAudio.cpp,RtAudio.h,RtHelper.h,RtMidi.cpp和RtMidi.h以及2個測試程序midiprobe.cpp和audioprobe.cpp。試圖編譯時未定義的符號RtAudio

編譯midiprobe與default command的作品,但是當我嘗試做相同的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 

我是相當新的這種東西(主要是有框架的現成直到現在),還沒有能夠弄清楚這一點呢。由於這是默認的例子,我真的失去了接下來做什麼... 感謝先進。

+1

嘗試添加'-framework CoreFoundation'。 –

+0

是的,解決它,謝謝! –

+0

好 - 很好 - 我已將我的評論轉換爲答案 - 請將此標記爲接受此問題未來訪問者的好處。 –

回答

3

丟失的符號中的CoreFoundation框架 - 您需要添加:

-framework CoreFoundation 

到命令行。

相關問題