JUCE AUWrapper linker errors Xcode 5

Hi Guys 

 

 

I have just been dealing with getting the audio plugin demo project to compile through xcode after having updated to osx10.9 and Xcode 5.

 

I am getting a linker error with regards to the auwrapper.o file.

 

 

Undefined symbols for architecture x86_64:
  "CMgr_SetComponentInstanceStorage(ComponentInstanceRecord*, char**)", referenced from:
      ComponentEntryPoint<JuceAU>::Dispatch(ComponentParameters*, JuceAU*) in juce_AU_Wrapper.o
  "ComponentBase::sNewInstanceType", referenced from:
      ComponentEntryPoint<JuceAU>::Dispatch(ComponentParameters*, JuceAU*) in juce_AU_Wrapper.o
      ComponentInitLocker::~ComponentInitLocker() in juce_AU_Wrapper.o
      ComponentInitLocker::ComponentInitLocker() in juce_AU_Wrapper.o
  "ComponentBase::AP_Open(void*, ComponentInstanceRecord*)", referenced from:
      APFactory<AUMIDILookup, JuceAU>::Factory(AudioComponentDescription const*) in juce_AU_Wrapper.o
  "ComponentBase::AP_Close(void*)", referenced from:
      APFactory<AUMIDILookup, JuceAU>::Factory(AudioComponentDescription const*) in juce_AU_Wrapper.o
  "ComponentInitLocker::InitComponentInitLocker()", referenced from:
      ComponentInitLocker::ComponentInitLocker() in juce_AU_Wrapper.o
  "ComponentInitLocker::sOnce", referenced from:
      ComponentInitLocker::ComponentInitLocker() in juce_AU_Wrapper.o
  "AUBase::DoProcessMultiple(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int, AudioBufferList const**, unsigned int, AudioBufferList**)", referenced from:
      AUMethodProcessMultiple(void*, unsigned int*, AudioTimeStamp const*, unsigned int, unsigned int, AudioBufferList const**, unsigned int, AudioBufferList**) in juce_AU_Wrapper.o
  "AUBase::NewCustomPresetSet(AUPreset const&)", referenced from:
      vtable for JuceAU in juce_AU_Wrapper.o
      vtable for JuceAUBaseClass in juce_AU_Wrapper.o
  "AUBase::DeallocateIOBuffers()", referenced from:
      vtable for JuceAU in juce_AU_Wrapper.o
      vtable for JuceAUBaseClass in juce_AU_Wrapper.o
  "AUBase::GetParameterHistoryInfo(unsigned int, unsigned int, float&, float&)", referenced from:
      vtable for JuceAU in juce_AU_Wrapper.o
      vtable for JuceAUBaseClass in juce_AU_Wrapper.o
  "AUBase::DoProcess(unsigned int&, AudioTimeStamp const&, unsigned int, AudioBufferList&)", referenced from:
      AUMethodProcess(void*, unsigned int*, AudioTimeStamp const*, unsigned int, AudioBufferList*) in juce_AU_Wrapper.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 have tried changing the target architecture etc to see if this has any effect but am at a bit of a dead end.

 

Is anyone able to help with this ?

 

Thanks

 

Josh

It doesn't look like your project contains any of the Apple AU cpp files. The introjucer should add those to your project automatically.

Thanks alot Jules,

 

I had moved the coreaudio folder into extra's under Xcode 5 but after what you said decided I would delete the folder and copy again from scratch and all appears to build fine under new Xcode. Probably a rookie error of some sort on my part.

 

Thanks alot for the help

 

Josh

Sorry Jules one more quick question.

 

The plugin had built perfectly.

 

I played around with a couple graphics colour options just to change the background to make sure the updated plugin versions were picked up in logic pro.

 

This opened fine. But suddenly I am getting an error in ComponentBase.h

Semantic issue

 

/Applications/Xcode.app/Contents/Developer/Extras/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.h:283:23:

 

Xcode seems to think these are the offending lines

 

Class *This = new Class((AudioComponentInstance)ci);

 

    static void *Construct(void *memory, AudioComponentInstance compInstance)
    {
        return new(memory) Implementor(compInstance);
    }

 

 

 

Cant understand why this has suddenly occured without anything being altered.

 

Allocating an object of abstract class type 'JuceAU'

 

 

That's Apple's code, not mine.. I've no idea what could be wrong.

If you've got an abstract base class allocation error, then obviously looking at which method is says is unimplemented would probably help give you a clue.