RT аудио Mac ошибка g++ ошибка компиляции

Возникли проблемы с получением RT Audio для компиляции с помощью простого приложения

#include "RtAudio.h"

int main()
{
        RtAudio *audio = 0;
        audio = new RtAudio;
        delete audio;
return 0;
}

Скомпилировать

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

ошибка

Undefined symbols for architecture x86_64:
  "RtAudio::RtAudio(RtAudio::Api)", referenced from:
      _main in rtaudio-e456a2.o
      _main in RtAudio-a64f56.o
"RtAudio::~RtAudio()", referenced from:
  _main in rtaudio-e456a2.o
  _main in RtAudio-a64f56.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

1 ответ

Решение

Вам нужно связать свой код с библиотекой RtAudio, поэтому добавьте -lrtAudio к вашей команде компиляции:

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

И вы включили два RtAudio, один "rtaudio.cpp" и два RtAudio.cpp, вы должны очистить rtaudio.cpp, потому что вы включили #include "RtAudio.h" с заглавной буквы в вашей главной

Другие вопросы по тегам