2

RtAudio と RtMidi を一緒に使用しようとしています。同じフォルダーに、RtAudio.cpp、RtAudio.h、RtHelper.h、RtMidi.cpp、および RtMidi.h と、2 つのテスト プログラム、midiprobe.cpp および audioprobe.cpp があります。

デフォルトのコマンドで midiprobe をコンパイルすると機能しますが、 RtAudioをテストするために audioprobe で同じことをしようとすると、エラーが発生します。

コンパイルに使用するものは次のとおりです。

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 に答える