Trouble compiling AudioUnit

VST version compiles ok and have been playing around with it (though same issue as DavidR’s previous thread), but if I enable compilation of the AudioUnit the linker fails with lots of messages like this:

“Undefined symbols for architecture x86_64:
“_AudioUnitGetProperty”, referenced from:
JuceAU::JuceUICreationClass::uiViewForAudioUnit(objc_object*, objc_selector*, ComponentInstanceRecord*, CGSize) in juce_AU_Wrapper.o
“CMgr_SetComponentInstanceStorage(ComponentInstanceRecord*, char**)”, referenced from:
ComponentEntryPoint<JuceAU>::Dispatch(ComponentParameters*, JuceAU*) in juce_AU_Wrapper.o
“AUMIDIBase::HandleNonNoteEvent(unsigned char, unsigned char, unsigned char, unsigned char, unsigned int)”, referenced from:
vtable for JuceAU in juce_AU_Wrapper.o
“AUMIDIBase::DelegateGetProperty(unsigned int, unsigned int, unsigned int, void*)”, referenced from:
vtable for JuceAU in juce_AU_Wrapper.o
“AUMIDIBase::DelegateSetProperty(unsigned int, unsigned int, unsigned int, void const*, unsigned int)”, referenced from:
vtable for JuceAU in juce_AU_Wrapper.o”
… etc etc.

Any pointers on what flags I need to change to get that working?

Seems related to the Core Audio Utility Classes. Have you tried following this thread on the Juce forum ?
http://rawmaterialsoftware.com/viewtopic.php?f=8&t=9546&p=56679#p56677

I am now getting the same error when trying to compile to AU (As per madwort, VST works fine, but I’d like to try out OwlSim with Garageband which doesn’t see to support VST plugins).

For completion, my error is:```
Undefined symbols for architecture i386:
"_AudioUnitGetProperty", referenced from:
JuceAUView::CreateUI(float, float)in juce_AU_Wrapper.o
JuceAU::JuceUICreationClass::uiViewForAudioUnit(objc_object*, objc_selector*, ComponentInstanceRecord*, _NSSize) in juce_AU_Wrapper.o
"CMgr_SetComponentInstanceStorage(ComponentInstanceRecord*, char**)", referenced from:
ComponentEntryPoint<JuceAUView>::Dispatch(ComponentParameters*, JuceAUView*)in juce_AU_Wrapper.o
ComponentEntryPoint<JuceAU>::Dispatch(ComponentParameters*, JuceAU*) in juce_AU_Wrapper.o
"AUMIDIBase::HandleNonNoteEvent(unsigned char, unsigned char, unsigned char, unsigned char, unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUMIDIBase::DelegateGetProperty(unsigned long, unsigned long, unsigned long, void*)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUMIDIBase::DelegateSetProperty(unsigned long, unsigned long, unsigned long, void const*, unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUMIDIBase::DelegateGetPropertyInfo(unsigned long, unsigned long, unsigned long, unsigned long&, unsigned char&)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUMIDIBase::SysEx(unsigned char const*, unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUMIDIBase::~AUMIDIBase()", referenced from:
AUMIDIEffectBase::~AUMIDIEffectBase()in juce_AU_Wrapper.o
"AUEffectBase::Initialize()", referenced from:
JuceAU::Initialize() in juce_AU_Wrapper.o
"AUEffectBase::ChangeStreamFormat(unsigned long, unsigned long, CAStreamBasicDescription const&, CAStreamBasicDescription const&)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUEffectBase::ProcessScheduledSlice(void*, unsigned long, unsigned long, unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUEffectBase::Reset(unsigned long, unsigned long)", referenced from:
JuceAU::Reset(unsigned long, unsigned long)in juce_AU_Wrapper.o
"AUEffectBase::Render(unsigned long&, AudioTimeStamp const&, unsigned long)", referenced from:
JuceAU::Render(unsigned long&, AudioTimeStamp const&, unsigned long)in juce_AU_Wrapper.o
"AUEffectBase::Cleanup()", referenced from:
JuceAU::Cleanup() in juce_AU_Wrapper.o
"AUEffectBase::~AUEffectBase()", referenced from:
AUMIDIEffectBase::~AUMIDIEffectBase()in juce_AU_Wrapper.o
"ComponentBase::PreDestructor()", referenced from:
vtable for JuceAUViewin juce_AU_Wrapper.o
"ComponentBase::PostConstructor()", referenced from:
vtable for JuceAUViewin juce_AU_Wrapper.o
"ComponentBase::sNewInstanceType", referenced from:
ComponentInitLocker::ComponentInitLocker()in juce_AU_Wrapper.o
ComponentInitLocker::~ComponentInitLocker()in juce_AU_Wrapper.o
ComponentEntryPoint<JuceAUView>::Dispatch(ComponentParameters*, JuceAUView*)in juce_AU_Wrapper.o
ComponentEntryPoint<JuceAU>::Dispatch(ComponentParameters*, JuceAU*) in juce_AU_Wrapper.o
"ComponentBase::AP_Open(void*, ComponentInstanceRecord*)", referenced from:
APFactory<AUMIDILookup, JuceAU>::Factory(AudioComponentDescription const*) in juce_AU_Wrapper.o
"ComponentBase::Version()", referenced from:
vtable for JuceAUViewin juce_AU_Wrapper.o
"ComponentBase::AP_Close(void*)", referenced from:
APFactory<AUMIDILookup, JuceAU>::Factory(AudioComponentDescription const*) in juce_AU_Wrapper.o
"AUCarbonViewBase::HandleEvent(OpaqueEventHandlerCallRef*, OpaqueEventRef*)", referenced from:
vtable for JuceAUViewin juce_AU_Wrapper.o
"AUCarbonViewBase::CreateCarbonView(ComponentInstanceRecord*, OpaqueWindowPtr*, OpaqueControlRef*, Float32Point const&, Float32Point const&, OpaqueControlRef*&)", referenced from:
vtable for JuceAUViewin juce_AU_Wrapper.o
"AUCarbonViewBase::RespondToEventTimer(__EventLoopTimer*)", referenced from:
vtable for JuceAUViewin juce_AU_Wrapper.o
"AUCarbonViewBase::ComponentEntryDispatch(ComponentParameters*, AUCarbonViewBase*)", referenced from:
ComponentEntryPoint<JuceAUView>::Dispatch(ComponentParameters*, JuceAUView*)in juce_AU_Wrapper.o
"AUCarbonViewBase::AUCarbonViewBase(ComponentInstanceRecord*, float)", referenced from:
JuceAUView::JuceAUView(ComponentInstanceRecord*)in juce_AU_Wrapper.o
"AUCarbonViewBase::~AUCarbonViewBase()", referenced from:
JuceAUView::~JuceAUView()in juce_AU_Wrapper.o
JuceAUView::~JuceAUView()in juce_AU_Wrapper.o
JuceAUView::JuceAUView(ComponentInstanceRecord*)in juce_AU_Wrapper.o
"AUMIDIEffectBase::GetProperty(unsigned long, unsigned long, unsigned long, void*)", referenced from:
JuceAU::GetProperty(unsigned long, unsigned long, unsigned long, void*)in juce_AU_Wrapper.o
"AUMIDIEffectBase::SetProperty(unsigned long, unsigned long, unsigned long, void const*, unsigned long)", referenced from:
JuceAU::SetProperty(unsigned long, unsigned long, unsigned long, void const*, unsigned long)in juce_AU_Wrapper.o
"AUMIDIEffectBase::GetPropertyInfo(unsigned long, unsigned long, unsigned long, unsigned long&, unsigned char&)", referenced from:
JuceAU::GetPropertyInfo(unsigned long, unsigned long, unsigned long, unsigned long&, unsigned char&)in juce_AU_Wrapper.o
"AUMIDIEffectBase::ComponentEntryDispatch(ComponentParameters*, AUMIDIEffectBase*)", referenced from:
ComponentEntryPoint<JuceAU>::Dispatch(ComponentParameters*, JuceAU*) in juce_AU_Wrapper.o
"AUMIDIEffectBase::AUMIDIEffectBase(ComponentInstanceRecord*, bool)", referenced from:
JuceAU::JuceAU(ComponentInstanceRecord*) in juce_AU_Wrapper.o
"CarbonEventHandler::WantEventTypes(OpaqueEventTargetRef*, unsigned long, EventTypeSpec const*)", referenced from:
vtable for JuceAUViewin juce_AU_Wrapper.o
"ComponentInitLocker::sComponentOpenMutex", referenced from:
ComponentInitLocker::ComponentInitLocker()in juce_AU_Wrapper.o
ComponentInitLocker::~ComponentInitLocker()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
"CAStreamBasicDescription::CAStreamBasicDescription()", referenced from:
JuceAU::JuceAU(ComponentInstanceRecord*) in juce_AU_Wrapper.o
"AUBase::SetBusCount(unsigned long, unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::ValidFormat(unsigned long, unsigned long, CAStreamBasicDescription const&)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::DoInitialize()", referenced from:
AUMethodInitialize(void*) in juce_AU_Wrapper.o
"AUBase::GetParameter(unsigned long, unsigned long, unsigned long, float&)", referenced from:
JuceAU::GetParameter(unsigned long, unsigned long, unsigned long, float&)in juce_AU_Wrapper.o
"AUBase::RestoreState(void const*)", referenced from:
JuceAU::RestoreState(void const*)in juce_AU_Wrapper.o
"AUBase::SetParameter(unsigned long, unsigned long, unsigned long, float, unsigned long)", referenced from:
JuceAU::SetParameter(unsigned long, unsigned long, unsigned long, float, unsigned long)in juce_AU_Wrapper.o
"AUBase::CopyClumpName(unsigned long, unsigned long, unsigned long, __CFString const**)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::CreateElement(unsigned long, unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::PreDestructor()", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::SetConnection(AudioUnitConnection const&)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::CreateElements()", referenced from:
AUBase::PostConstructor() in juce_AU_Wrapper.o
JuceAU::JuceAU(ComponentInstanceRecord*) in juce_AU_Wrapper.o
"AUBase::GetStreamFormat(unsigned long, unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::PropertyChanged(unsigned long, unsigned long, unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::CopyIconLocation()", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::GetParameterList(unsigned long, unsigned long*, unsigned long&)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::SetInputCallback(unsigned long, unsigned long, long ()(void, unsigned long*, AudioTimeStamp const*, unsigned long, unsigned long, AudioBufferList*), void*)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::DoProcessMultiple(unsigned long&, AudioTimeStamp const&, unsigned long, unsigned long, AudioBufferList const**, unsigned long, AudioBufferList**)", referenced from:
AUMethodProcessMultiple(void*, unsigned long*, AudioTimeStamp const*, unsigned long, unsigned long, AudioBufferList const**, unsigned long, AudioBufferList**)in juce_AU_Wrapper.o
"AUBase::ReallocateBuffers()", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::ScheduleParameter(AudioUnitParameterEvent const*, unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::AddPropertyListener(unsigned long, void ()(void, ComponentInstanceRecord*, unsigned long, unsigned long, unsigned long), void*)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::DispatchGetProperty(unsigned long, unsigned long, unsigned long, void*)", referenced from:
AUMethodGetProperty(void*, unsigned long, unsigned long, unsigned long, void*, unsigned long*)in juce_AU_Wrapper.o
"AUBase::DispatchSetProperty(unsigned long, unsigned long, unsigned long, void const*, unsigned long)", referenced from:
AUMethodSetProperty(void*, unsigned long, unsigned long, unsigned long, void const*, unsigned long)in juce_AU_Wrapper.o
"AUBase::RemovePropertyValue(unsigned long, unsigned long, unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::GetChannelLayoutTags(unsigned long, unsigned long, unsigned long*)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::SetMaxFramesPerSlice(unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::GetAudioChannelLayout(unsigned long, unsigned long, AudioChannelLayout*, unsigned char&)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::SetAudioChannelLayout(unsigned long, unsigned long, AudioChannelLayout const*)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::SetRenderNotification(long ()(void, unsigned long*, AudioTimeStamp const*, unsigned long, unsigned long, AudioBufferList*), void*)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::RemovePropertyListener(unsigned long, void ()(void, ComponentInstanceRecord*, unsigned long, unsigned long, unsigned long), void*, bool)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::DispatchGetPropertyInfo(unsigned long, unsigned long, unsigned long, unsigned long&, unsigned char&)", referenced from:
AUMethodGetPropertyInfo(void*, unsigned long, unsigned long, unsigned long, unsigned long*, unsigned char*)in juce_AU_Wrapper.o
AUMethodGetProperty(void*, unsigned long, unsigned long, unsigned long, void*, unsigned long*)in juce_AU_Wrapper.o
"AUBase::GetParameterHistoryInfo(unsigned long, unsigned long, float&, float&)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::GetParameterValueStrings(unsigned long, unsigned long, __CFArray const**)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::RemoveAudioChannelLayout(unsigned long, unsigned long)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::RemoveRenderNotification(long ()(void, unsigned long*, AudioTimeStamp const*, unsigned long, unsigned long, AudioBufferList*), void*)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::ProcessForScheduledParams(std::vector<AudioUnitParameterEvent, std::allocator<AudioUnitParameterEvent> >&, unsigned long, void*)", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"AUBase::SetAFactoryPresetAsCurrent(AUPreset const&)", referenced from:
JuceAU::NewFactoryPresetSet(AUPreset const&) in juce_AU_Wrapper.o
"AUBase::DispatchRemovePropertyValue(unsigned long, unsigned long, unsigned long)", referenced from:
AUMethodSetProperty(void*, unsigned long, unsigned long, unsigned long, void const*, unsigned long)in juce_AU_Wrapper.o
"AUBase::DoRender(unsigned long&, AudioTimeStamp const&, unsigned long, unsigned long, AudioBufferList&)", referenced from:
AUMethodRender(void*, unsigned long*, AudioTimeStamp const*, unsigned long, unsigned long, AudioBufferList*)in juce_AU_Wrapper.o
"AUBase::DoCleanup()", referenced from:
AUMethodUninitialize(void*) in juce_AU_Wrapper.o
"AUBase::DoProcess(unsigned long&, AudioTimeStamp const&, unsigned long, AudioBufferList&)", referenced from:
AUMethodProcess(void*, unsigned long*, AudioTimeStamp const*, unsigned long, AudioBufferList*)in juce_AU_Wrapper.o
"AUBase::SaveState(void const**)", referenced from:
JuceAU::SaveState(void const**)in juce_AU_Wrapper.o
"AUBase::CanSetMaxFrames() const", referenced from:
vtable for JuceAUin juce_AU_Wrapper.o
"typeinfo for AUCarbonViewBase", referenced from:
typeinfo for JuceAUViewin juce_AU_Wrapper.o
"typeinfo for AUMIDIEffectBase", referenced from:
typeinfo for JuceAUin juce_AU_Wrapper.o
"vtable for AUMIDIEffectBase", referenced from:
AUMIDIEffectBase::~AUMIDIEffectBase()in juce_AU_Wrapper.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"non-virtual thunk to AUCarbonViewBase::HandleEvent(OpaqueEventHandlerCallRef*, OpaqueEventRef*)", referenced from:
vtable for JuceAUViewin juce_AU_Wrapper.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

and I have followed the mentioned thread already.

Tom just added a post called AudioUnit compilation tips
Please follow it guys and let us know!

Thanks - moved to other thread!