2 Replies
      Latest reply on Dec 29, 2018 8:59 AM by WalterEon
      WalterEon Level 1 Level 1 (0 points)

        Hi there,

         

        I'm trying to get into audio programming with Core Audio. I'm no stranger to Audio Programming and the C++ language.

        Currently I have downloaded the latest version of the CoreAudioUtilityClasses, put them in a group(copied into the project folder) in XCode and tried to make a simple AudioInfo struct with a CAStreamBasicDescription object.

        When I try to compile I get linker errors:

         

        Undefined symbols for architecture x86_64:
          "_AddEventTypesToHandler", referenced from:
              CarbonEventHandler::WantEventTypes(OpaqueEventTargetRef*, unsigned int, EventTypeSpec const*) in CarbonEventHandler.o
          "_CallNextEventHandler", referenced from:
              AUCarbonViewControl::HandleEvent(OpaqueEventHandlerCallRef*, OpaqueEventRef*) in AUCarbonViewControl.o
          "_GetEventClass", referenced from:
              AUCarbonViewControl::HandleEvent(OpaqueEventHandlerCallRef*, OpaqueEventRef*) in AUCarbonViewControl.o
              AUPropertyControl::HandleEvent(OpaqueEventHandlerCallRef*, OpaqueEventRef*) in AUCarbonViewControl.o
          "_GetEventKind", referenced from:
              AUCarbonViewControl::HandleEvent(OpaqueEventHandlerCallRef*, OpaqueEventRef*) in AUCarbonViewControl.o
              AUPropertyControl::HandleEvent(OpaqueEventHandlerCallRef*, OpaqueEventRef*) in AUCarbonViewControl.o
          "_GetEventParameter", referenced from:
              AUCarbonViewControl::HandleEvent(OpaqueEventHandlerCallRef*, OpaqueEventRef*) in AUCarbonViewControl.o
          "_GetMainEventLoop", referenced from:
              AUCarbonViewBase::CreateEventLoopTimer(float, float) in AUCarbonViewBase.o
          "_InstallEventHandler", referenced from:
              CarbonEventHandler::WantEventTypes(OpaqueEventTargetRef*, unsigned int, EventTypeSpec const*) in CarbonEventHandler.o
          "_InstallEventLoopTimer", referenced from:
              AUCarbonViewBase::CreateEventLoopTimer(float, float) in AUCarbonViewBase.o
          "_RemoveEventHandler", referenced from:
              CarbonEventHandler::~CarbonEventHandler() in CarbonEventHandler.o
          "_vDSP_create_fftsetup", referenced from:
              CASpectralProcessor::CASpectralProcessor(unsigned int, unsigned int, unsigned int, unsigned int) in CASpectralProcessor.o
          "_vDSP_ctoz", referenced from:
              CASpectralProcessor::DoFwdFFT() in CASpectralProcessor.o
          "_vDSP_destroy_fftsetup", referenced from:
              CASpectralProcessor::~CASpectralProcessor() in CASpectralProcessor.o
          "_vDSP_fft_zrip", referenced from:
              CASpectralProcessor::DoFwdFFT() in CASpectralProcessor.o
              CASpectralProcessor::DoInvFFT() in CASpectralProcessor.o
          "_vDSP_maxmgv", referenced from:
              CASpectralProcessor::GetMagnitude(AudioBufferList*, float*, float*) in CASpectralProcessor.o
          "_vDSP_minmgv", referenced from:
              CASpectralProcessor::GetMagnitude(AudioBufferList*, float*, float*) in CASpectralProcessor.o
          "_vDSP_vadd", referenced from:
              CASpectralProcessor::OverlapAddOutput() in CASpectralProcessor.o
          "_vDSP_vmul", referenced from:
              CASpectralProcessor::DoWindowing() in CASpectralProcessor.o
          "_vDSP_vsma", referenced from:
              AUPannerBase::BypassRender(unsigned int&, AudioTimeStamp const&, unsigned int) in AUPannerBase.o
          "_vDSP_vsmul", referenced from:
              CASpectralProcessor::DoInvFFT() in CASpectralProcessor.o
          "_vDSP_ztoc", referenced from:
              CASpectralProcessor::DoInvFFT() in CASpectralProcessor.o
          "_vDSP_zvabs", referenced from:
              CASpectralProcessor::GetMagnitude(AudioBufferList*, float*, float*) in CASpectralProcessor.o
        ld: symbol(s) not found for architecture x86_64
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
        
        

        I really don't understand what the problem is and how I could solve it. I know the CAUC's haven't been updated for years, but I have come  to understand that they are still widely used.

        Is there something I'm missing?