XCode and C++11 - Setting Language standard and libstd++ have no effect


#1

Hi everybody,

to use the AudioProcessorValueTreeState I had to update to C++11. But either I do something wrong or something is broken (probably the first one...)

I try to set in Introjucer "Language standard" to C++11 and C++Library to LLVM libc++ (I hope that's the correct setting, I have no further constraints, just Juce, XCode 7.11 and AAXLibrary 2.2). But when I hit "Save and Open in IDE" the created project has the language setting to C99 and compiler default. I double checked in debug and release settings, both show the same.

When I set manually in Xcode the language to C++11 and libstc++ to LLVM, I get linker errors from AAX calls to libc. I changed the settings in the AAXLibrary to C++11 as well and did a clean and rebuild. No errors. But when I compile any AudioProcessor I get all these linker errors.

What are the settings I have to set, to use the AudioProcessorValueTreeState?

Thanks for helping,

Daniel

P.S: I post the linker output, sorry, if you feel spammed about it, I don't know if it helps...

Ld build/Debug/PlugPlayground.component/Contents/MacOS/PlugPlayground normal x86_64
    cd /Volumes/data/Developer/PlugPlayground/Builds/MacOSX
    export MACOSX_DEPLOYMENT_TARGET=10.8
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -bundle -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -L/Volumes/data/Developer/PlugPlayground/Builds/MacOSX/build/Debug -L/Volumes/data/Developer/SDK/AAX_SDK/Libs/Debug -F/Volumes/data/Developer/PlugPlayground/Builds/MacOSX/build/Debug -filelist /Users/daniel/Library/Developer/Xcode/DerivedData/PlugPlayground-ezhwrbtklcwsjjbhoiqmbvqrbftd/Build/Intermediates/PlugPlayground.build/Debug/PlugPlayground.build/Objects-normal/x86_64/PlugPlayground.LinkFileList -mmacosx-version-min=10.8 -bundle -lAAXLibrary -stdlib=libc++ -framework Accelerate -framework AudioToolbox -framework AudioUnit -framework Carbon -framework Cocoa -framework CoreAudio -framework CoreAudioKit -framework CoreMIDI -framework DiscRecording -framework IOKit -framework OpenGL -framework QTKit -framework QuartzCore -framework WebKit -Xlinker -dependency_info -Xlinker /Users/daniel/Library/Developer/Xcode/DerivedData/PlugPlayground-ezhwrbtklcwsjjbhoiqmbvqrbftd/Build/Intermediates/PlugPlayground.build/Debug/PlugPlayground.build/Objects-normal/x86_64/PlugPlayground_dependency_info.dat -o /Volumes/data/Developer/PlugPlayground/Builds/MacOSX/build/Debug/PlugPlayground.component/Contents/MacOS/PlugPlayground

Undefined symbols for architecture x86_64:
  "std::string::size() const", referenced from:
      AAX_CEffectParameters::GetParameterNameOfLength(char const*, AAX_IString*, int) const in libAAXLibrary.a(AAX_CEffectParameters.o)
  "std::string::c_str() const", referenced from:
      AAX_CString::Get() const in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::CString() const in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::SubString(unsigned int, unsigned int, AAX_IString*) const in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::operator+=(std::string const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CEffectParameters::GetParameterNameOfLength(char const*, AAX_IString*, int) const in libAAXLibrary.a(AAX_CEffectParameters.o)
      AAX_CPacketDispatcher::Dispatch() in libAAXLibrary.a(AAX_CPacketDispatcher.o)
  "std::string::empty() const", referenced from:
      AAX_CString::Empty() const in libAAXLibrary.a(AAX_CString.o)
  "std::string::length() const", referenced from:
      AAX_CString::Length() const in libAAXLibrary.a(AAX_CString.o)
  "std::string::substr(unsigned long, unsigned long) const", referenced from:
      AAX_CString::SubString(unsigned int, unsigned int, AAX_IString*) const in libAAXLibrary.a(AAX_CString.o)
  "std::string::compare(char const*) const", referenced from:
      bool std::operator!=<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
  "std::string::compare(std::string const&) const", referenced from:
      bool std::operator==<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libAAXLibrary.a(AAX_CString.o)
      bool std::operator!=<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libAAXLibrary.a(AAX_CString.o)
      bool std::operator<<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libAAXLibrary.a(AAX_CEffectParameters.o)
      bool std::operator<<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      bool std::operator<<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libAAXLibrary.a(AAX_CParameterManager.o)
  "std::string::operator[](unsigned long) const", referenced from:
      AAX_CString::operator[](unsigned int) const in libAAXLibrary.a(AAX_CString.o)
  "std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::str() const", referenced from:
      AAX_CString::AppendNumber(double, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AppendNumber(int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AppendHex(int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertNumber(unsigned int, double, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertNumber(unsigned int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertHex(unsigned int, int, int) in libAAXLibrary.a(AAX_CString.o)
  "std::basic_ios<char, std::char_traits<char> >::fail() const", referenced from:
      AAX_CString::ToDouble(double*) const in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::ToInteger(int*) const in libAAXLibrary.a(AAX_CString.o)
  "std::allocator<char>::allocator(std::allocator<char> const&)", referenced from:
      std::vector<char, std::allocator<char> >::vector(unsigned long, char const&, std::allocator<char> const&) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      std::vector<char, std::allocator<char> >::~vector() in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      std::vector<char, std::allocator<char> >::_M_erase_at_end(char*) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      std::vector<char, std::allocator<char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, unsigned long, char const&) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
  "std::allocator<char>::allocator()", referenced from:
      AAX_CString::AAX_CString() in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AAX_CString(char const*) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AAX_CString(AAX_IString const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CEffectParameters::FilterParameterIDOnSave(char const*) in libAAXLibrary.a(AAX_CEffectParameters.o)
      AAX_CEffectParameters::GetParameterNameOfLength(char const*, AAX_IString*, int) const in libAAXLibrary.a(AAX_CEffectParameters.o)
      AAX_CEffectParameters::BuildChunkData() const in libAAXLibrary.a(AAX_CEffectParameters.o)
      AAX_CEffectParameters::SetChunk(unsigned int, AAX_SPlugInChunk const*) in libAAXLibrary.a(AAX_CEffectParameters.o)
      ...
  "std::allocator<char>::allocator(std::allocator<char> const&)", referenced from:
      std::_Vector_base<char, std::allocator<char> >::_Vector_impl::_Vector_impl(std::allocator<char> const&) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
  "std::allocator<char>::~allocator()", referenced from:
      AAX_CString::AAX_CString() in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AAX_CString(char const*) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AAX_CString(AAX_IString const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CEffectParameters::FilterParameterIDOnSave(char const*) in libAAXLibrary.a(AAX_CEffectParameters.o)
      AAX_CEffectParameters::GetParameterNameOfLength(char const*, AAX_IString*, int) const in libAAXLibrary.a(AAX_CEffectParameters.o)
      AAX_CEffectParameters::BuildChunkData() const in libAAXLibrary.a(AAX_CEffectParameters.o)
      AAX_CEffectParameters::SetChunk(unsigned int, AAX_SPlugInChunk const*) in libAAXLibrary.a(AAX_CEffectParameters.o)
      ...
  "std::allocator<char>::~allocator()", referenced from:
      std::_Vector_base<char, std::allocator<char> >::_Vector_impl::~_Vector_impl() in libAAXLibrary.a(AAX_CPacketDispatcher.o)
  "std::istream::operator>>(double&)", referenced from:
      AAX_CString::ToDouble(double*) const in libAAXLibrary.a(AAX_CString.o)
  "std::istream::operator>>(int&)", referenced from:
      AAX_CString::ToInteger(int*) const in libAAXLibrary.a(AAX_CString.o)
  "std::ostream::operator<<(double)", referenced from:
      AAX_CString::AppendNumber(double, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertNumber(unsigned int, double, int) in libAAXLibrary.a(AAX_CString.o)
  "std::ostream::operator<<(int)", referenced from:
      AAX_CString::AppendNumber(int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AppendHex(int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertNumber(unsigned int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertHex(unsigned int, int, int) in libAAXLibrary.a(AAX_CString.o)
  "std::string::clear()", referenced from:
      AAX_CString::Clear() in libAAXLibrary.a(AAX_CString.o)
  "std::string::erase(unsigned long, unsigned long)", referenced from:
      AAX_CString::Erase(unsigned int, unsigned int) in libAAXLibrary.a(AAX_CString.o)
  "std::string::append(char const*)", referenced from:
      AAX_CString::Append(AAX_CString const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::Append(char const*) in libAAXLibrary.a(AAX_CString.o)
  "std::string::insert(unsigned long, char const*)", referenced from:
      AAX_CString::Insert(unsigned int, AAX_CString const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::Insert(unsigned int, char const*) in libAAXLibrary.a(AAX_CString.o)
  "std::string::insert(unsigned long, std::string const&)", referenced from:
      AAX_CString::InsertNumber(unsigned int, double, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertNumber(unsigned int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertHex(unsigned int, int, int) in libAAXLibrary.a(AAX_CString.o)
  "std::string::replace(unsigned long, unsigned long, char const*)", referenced from:
      AAX_CString::Replace(unsigned int, unsigned int, AAX_CString const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::Replace(unsigned int, unsigned int, char const*) in libAAXLibrary.a(AAX_CString.o)
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:
      AAX_CString::AAX_CString() in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AAX_CString(char const*) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AAX_CString(AAX_IString const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CEffectParameters::FilterParameterIDOnSave(char const*) in libAAXLibrary.a(AAX_CEffectParameters.o)
      AAX_CEffectParameters::GetParameterNameOfLength(char const*, AAX_IString*, int) const in libAAXLibrary.a(AAX_CEffectParameters.o)
      AAX_CEffectParameters::BuildChunkData() const in libAAXLibrary.a(AAX_CEffectParameters.o)
      AAX_CEffectParameters::SetChunk(unsigned int, AAX_SPlugInChunk const*) in libAAXLibrary.a(AAX_CEffectParameters.o)
      ...
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)", referenced from:
      AAX_CString::AAX_CString(std::string const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AAX_CString(AAX_CString const&) in libAAXLibrary.a(AAX_CString.o)
      __gnu_cxx::new_allocator<std::string>::construct(std::string*, std::string const&) in libAAXLibrary.a(AAX_CEffectParameters.o)
      std::vector<std::string, std::allocator<std::string> >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, std::string const&) in libAAXLibrary.a(AAX_CEffectParameters.o)
      void std::_Construct<std::string, std::string>(std::string*, std::string const&) in libAAXLibrary.a(AAX_CEffectParameters.o)
      std::pair<std::string, std::pair<AAX_CPacket*, AAX_IPacketHandler*> >::pair(std::string const&, std::pair<AAX_CPacket*, AAX_IPacketHandler*> const&) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      std::pair<std::string const, std::pair<AAX_CPacket*, AAX_IPacketHandler*> >::pair(std::pair<std::string const, std::pair<AAX_CPacket*, AAX_IPacketHandler*> > const&) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      ...
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()", referenced from:
      AAX_CString::AppendNumber(double, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AppendNumber(int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AppendHex(int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertNumber(unsigned int, double, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertNumber(unsigned int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertHex(unsigned int, int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::SubString(unsigned int, unsigned int, AAX_IString*) const in libAAXLibrary.a(AAX_CString.o)
      ...
  "std::string::operator=(char const*)", referenced from:
      AAX_CString::Set(char const*) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::operator=(AAX_IString const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::operator=(char const*) in libAAXLibrary.a(AAX_CString.o)
  "std::string::operator=(std::string const&)", referenced from:
      AAX_CString::operator=(AAX_CString const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::operator=(std::string const&) in libAAXLibrary.a(AAX_CString.o)
      std::vector<std::string, std::allocator<std::string> >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, std::string const&) in libAAXLibrary.a(AAX_CEffectParameters.o)
      std::string* std::__copy_backward<false, std::random_access_iterator_tag>::__copy_b<std::string*, std::string*>(std::string*, std::string*, std::string*) in libAAXLibrary.a(AAX_CEffectParameters.o)
  "std::string::operator[](unsigned long)", referenced from:
      AAX_CString::operator[](unsigned int) in libAAXLibrary.a(AAX_CString.o)
  "std::string::operator+=(char const*)", referenced from:
      AAX_CString::operator+=(AAX_CString const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::operator+=(std::string const&) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::operator+=(char const*) in libAAXLibrary.a(AAX_CString.o)
  "std::string::operator+=(std::string const&)", referenced from:
      AAX_CString::AppendNumber(double, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AppendNumber(int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AppendHex(int, int) in libAAXLibrary.a(AAX_CString.o)
  "std::out_of_range::out_of_range(std::string const&)", referenced from:
      AAX_CChunkDataParser::GetChunkData(AAX_SPlugInChunk*) in libAAXLibrary.a(AAX_CChunkDataParser.o)
  "std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::basic_istringstream(std::string const&, std::_Ios_Openmode)", referenced from:
      AAX_CString::ToDouble(double*) const in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::ToInteger(int*) const in libAAXLibrary.a(AAX_CString.o)
  "std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_istringstream()", referenced from:
      AAX_CString::ToDouble(double*) const in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::ToInteger(int*) const in libAAXLibrary.a(AAX_CString.o)
  "std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(std::_Ios_Openmode)", referenced from:
      AAX_CString::AppendNumber(double, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AppendNumber(int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AppendHex(int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertNumber(unsigned int, double, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertNumber(unsigned int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertHex(unsigned int, int, int) in libAAXLibrary.a(AAX_CString.o)
  "std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()", referenced from:
      AAX_CString::AppendNumber(double, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AppendNumber(int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::AppendHex(int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertNumber(unsigned int, double, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertNumber(unsigned int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertHex(unsigned int, int, int) in libAAXLibrary.a(AAX_CString.o)
  "std::basic_ios<char, std::char_traits<char> >::fill(char)", referenced from:
      AAX_CString::AppendHex(int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertHex(unsigned int, int, int) in libAAXLibrary.a(AAX_CString.o)
  "std::_Rb_tree_decrement(std::_Rb_tree_node_base*)", referenced from:
      std::_Rb_tree_iterator<std::string>::operator--() in libAAXLibrary.a(AAX_CEffectParameters.o)
      std::_Rb_tree_iterator<std::pair<int const, AAX_CPacket*> >::operator--() in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      std::_Rb_tree_iterator<std::pair<std::string const, AAX_IParameter*> >::operator--() in libAAXLibrary.a(AAX_CParameterManager.o)
      std::_Rb_tree_iterator<AAX_IEffectDescriptor*>::operator--() in libAAXLibrary.a(AAX_VCollection.o)
      std::_Rb_tree_iterator<AAX_IPropertyMap*>::operator--() in libAAXLibrary.a(AAX_VCollection.o)
      std::_Rb_tree_iterator<AAX_IComponentDescriptor*>::operator--() in libAAXLibrary.a(AAX_VEffectDescriptor.o)
      std::_Rb_tree_iterator<AAX_IPropertyMap*>::operator--() in libAAXLibrary.a(AAX_VEffectDescriptor.o)
      ...
  "std::_Rb_tree_increment(std::_Rb_tree_node_base const*)", referenced from:
      std::_Rb_tree_const_iterator<AAX_IEffectDescriptor*>::operator++() in libAAXLibrary.a(AAX_VCollection.o)
      std::_Rb_tree_const_iterator<AAX_IComponentDescriptor*>::operator++() in libAAXLibrary.a(AAX_VEffectDescriptor.o)
      std::_Rb_tree_const_iterator<AAX_IPropertyMap*>::operator++() in libAAXLibrary.a(AAX_VEffectDescriptor.o)
      std::_Rb_tree_const_iterator<AAX_IPropertyMap*>::operator++() in libAAXLibrary.a(AAX_VComponentDescriptor.o)
  "std::_Rb_tree_increment(std::_Rb_tree_node_base*)", referenced from:
      std::_Rb_tree_iterator<std::pair<int const, AAX_CPacket*> >::operator++(int) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      std::_Rb_tree_iterator<std::pair<std::string const, std::pair<AAX_CPacket*, AAX_IPacketHandler*> > >::operator++(int) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      std::_Rb_tree_iterator<std::pair<std::string const, AAX_IParameter*> >::operator++(int) in libAAXLibrary.a(AAX_CParameterManager.o)
  "std::__throw_length_error(char const*)", referenced from:
      std::vector<std::string, std::allocator<std::string> >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, std::string const&) in libAAXLibrary.a(AAX_CEffectParameters.o)
      std::vector<char, std::allocator<char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, unsigned long, char const&) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      std::vector<AAX_IParameter*, std::allocator<AAX_IParameter*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<AAX_IParameter**, std::vector<AAX_IParameter*, std::allocator<AAX_IParameter*> > >, AAX_IParameter* const&) in libAAXLibrary.a(AAX_CParameterManager.o)
      std::vector<AAX_CChunkDataParser::DataValue, std::allocator<AAX_CChunkDataParser::DataValue> >::_M_insert_aux(__gnu_cxx::__normal_iterator<AAX_CChunkDataParser::DataValue*, std::vector<AAX_CChunkDataParser::DataValue, std::allocator<AAX_CChunkDataParser::DataValue> > >, AAX_CChunkDataParser::DataValue const&) in libAAXLibrary.a(AAX_CChunkDataParser.o)
  "std::__throw_out_of_range(char const*)", referenced from:
      std::vector<char, std::allocator<char> >::_M_range_check(unsigned long) const in libAAXLibrary.a(AAX_CPacketDispatcher.o)
  "std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:
      std::_Rb_tree<std::string, std::pair<std::string const, AAX_IParameter*>, std::_Select1st<std::pair<std::string const, AAX_IParameter*> >, std::less<std::string>, std::allocator<std::pair<std::string const, AAX_IParameter*> > >::erase(std::_Rb_tree_iterator<std::pair<std::string const, AAX_IParameter*> >) in libAAXLibrary.a(AAX_CParameterManager.o)
  "std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:
      std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::string const&) in libAAXLibrary.a(AAX_CEffectParameters.o)
      std::_Rb_tree<int, std::pair<int const, AAX_CPacket*>, std::_Select1st<std::pair<int const, AAX_CPacket*> >, std::less<int>, std::allocator<std::pair<int const, AAX_CPacket*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<int const, AAX_CPacket*> const&) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      std::_Rb_tree<std::string, std::pair<std::string const, std::pair<AAX_CPacket*, AAX_IPacketHandler*> >, std::_Select1st<std::pair<std::string const, std::pair<AAX_CPacket*, AAX_IPacketHandler*> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::pair<AAX_CPacket*, AAX_IPacketHandler*> > > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, std::pair<AAX_CPacket*, AAX_IPacketHandler*> > const&) in libAAXLibrary.a(AAX_CPacketDispatcher.o)
      std::_Rb_tree<std::string, std::pair<std::string const, AAX_IParameter*>, std::_Select1st<std::pair<std::string const, AAX_IParameter*> >, std::less<std::string>, std::allocator<std::pair<std::string const, AAX_IParameter*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, AAX_IParameter*> const&) in libAAXLibrary.a(AAX_CParameterManager.o)
      std::_Rb_tree<AAX_IEffectDescriptor*, AAX_IEffectDescriptor*, std::_Identity<AAX_IEffectDescriptor*>, std::less<AAX_IEffectDescriptor*>, std::allocator<AAX_IEffectDescriptor*> >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, AAX_IEffectDescriptor* const&) in libAAXLibrary.a(AAX_VCollection.o)
      std::_Rb_tree<AAX_IPropertyMap*, AAX_IPropertyMap*, std::_Identity<AAX_IPropertyMap*>, std::less<AAX_IPropertyMap*>, std::allocator<AAX_IPropertyMap*> >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, AAX_IPropertyMap* const&) in libAAXLibrary.a(AAX_VCollection.o)
      std::_Rb_tree<AAX_IComponentDescriptor*, AAX_IComponentDescriptor*, std::_Identity<AAX_IComponentDescriptor*>, std::less<AAX_IComponentDescriptor*>, std::allocator<AAX_IComponentDescriptor*> >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, AAX_IComponentDescriptor* const&) in libAAXLibrary.a(AAX_VEffectDescriptor.o)
      ...
  "std::basic_ostream<char, std::char_traits<char> >& std::operator<<<std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
      AAX_CString::AppendHex(int, int) in libAAXLibrary.a(AAX_CString.o)
      AAX_CString::InsertHex(unsigned int, int, int) in libAAXLibrary.a(AAX_CString.o)
  "std::basic_ostream<char, std::char_traits<char> >& std::operator<<<char, std::char_traits<char>, std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      operator<<(std::ostream&, AAX_CString const&) in libAAXLibrary.a(AAX_CString.o)
  "std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)", referenced from:
      operator>>(std::istream&, AAX_CString&) in libAAXLibrary.a(AAX_CString.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

 

 


#2

I think you'd need to also build AAX with C++11 so that it uses compatible libs..


#3

That's what I thought. I tried and rebuilt the AAX library with C++11 set. I did clean and rebuid, also on both schemes, debug and release. That didn't help unfortunately. Also did a clean on the audio plugin before I tried again.

Which std++ is prefered, i.e. more tested? LLVM or gnu? I chose LLVM as I thought it might be closer to the compiler (if something can be more standard than another ;-) )


#4

Definitely LLVM if you're using the LLVM compiler.


#5

Thanks, that's what I thought.

What confuses me: To be sure I started an AudioPlugin in Introjucer from scratch. It compiles without AAX. Then I added the AudioProcessorValueTreeState, it compiles also. BUT the setting in XCode for C dialect and c++ dialect stands on "C-98" and "default".

Sounds good, but when I tried AudioProcessorValueTreeState before (i.e. on OSX 10.9 and XCode 6.x) I had no AudioProcessorValueTreeState, because the macro JUCE_COMPILER_SUPPORTS_LAMBDAS was not defined. Now do I need C++11 for ValueTreeState?

Can you verify that the introjucer doesn't translate the C++11 setting into the project?

With AAX I have still to fix it. I just verified that the rebuilt version is really used for linking...

Thanks for your help


#6

Hi daniel,

I just tried to reproduce your situation. If I create a plain new audio plugin from the Introjucer and open it in Xcode, I get the following settings:

https://drive.google.com/open?id=0B-YcSuujrbGNZjZPNklZaVBfYW8

Also, whenever I change the language settings in the Introjucer (e.g. from C++11 to C++14, or C++98), and then re-save the project, I can see the changes correctly reflected in the Xcode build settings. Is this what is not working for you?

Also, yes you need at least C++11 to use AudioProcessorValueTreeState, because it uses std::function as a part of its API.


#7

Hi Timur,

thanks for jumping in...

Yes, this was exactly my problem. I changed the setting in Introjucer, looked at XCode, saw the project tree folding as it usually does, when the project file is regenerated by introjucer, and also double checked the title bar, that I look at the right project. The setting for C-language dialect and C++ Language dialect showed "Compiler default", so I changed it manually. And I recreated it several times and had to change it every time manually to C++11.

Now I tried again, and yes, now it creates the setting like on your screenshot. I'm embarrassed, these are the days when I hate what I'm doing...

I thought, there might lurke an old Introjucer build around on my machine, which was started when I double clicked a .jucer file, but I can't find any. I can't trust my computer, my OS and not myself... Anyway...

But I still can't solve the linker errors when building against AAXLibrary. I tried all combinations, there is even an AAXLibrary_libcpp which I also recreated several times with different settings, but the Audio plugin doesn't reference it anyway... I also rebuilt debug and release builds of the library and checked the timestamp...

Maybe I should also ask Rob on the digidesign forum...

If you have any tip what I could try, I would appreciate it, becoming desperate...

Thanks again,

Daniel


#8

...sorry, now I have the old behaviour again, I double checked the settings and realized that I have different settings in Introjucer Release and Debug. I changed to be both C++11 and played around with C++ from LLVM C++ and Compiler default. And now, tataa, I have in debug and release C++11 and the XCode project shows C-99 and C++ = Compiler default. Crazy. I didn't restart the Introjucer, it is always running in the background, so it can't be a wrong instance started from somewhere...

It doesn't change, if I change settings in release and debug for Language C++11 and C++Library from LLVM to compiler default, click save and open in IDE, still C-99 and C++ = compiler default...

Could there be a bug when changing the setting on the introjucer panes not being copied to the internal state? Like depending on the last focussed element? Sounds not very probable, but I have no other explanation...


#9

...ok, when I recreate it from scratch, the values reflect the setting from Introjucer. The only explanation I have, that I altered the settings in the project file manually, so maybe it tried to merge the settings in some way? I don't touch any build setting in XCode again and hope not to hit any obstacles...

The AAX linking issue persists...


#10

Hi there,

Sorry for not coming back earlier. Maybe the linker errors result because you compiled AAX with another standard library than the rest? Looks a bit like that. I can't think of another thing right now that could go wrong there...


#11

Hi Timur,

I just solved it today after taking a few days off. You are right, that was also my thought, and I checked it several times, once setting standard lib or compiler default.

Today I started to check all other settings as well like architecture and now I found the deployment setting, which was 10.8 in my library and default in my plugin. I didn't know that it will affect linking, but retrospectivly it makes sense.

Thanks for all help.

Best,

Daniel


#12

Yep that makes sense. Didn't think of the deployment setting immediately, but yes that perfectly explains it. I'm glad you could figure it out!


#13

First look at JUCE and I ran right into this issue.

Anyone with existing AAX projects will have this issue  - maybe it's worth including a note in the tutorials or readme?

But I'm up and running now. Thanks for posting your solution.

 


#14

Just for the records, there is a second catch which Timur solved here: http://www.juce.com/comment/318838#comment-318838

If you set a deployment target 10.8, the compiler default is no longer C++11 but C++98. And if one is unlucky like me and tries to set deploy to 10.8 and select Compiler C++11, the library's compiler default is then STD++ with C++98, which makes no sense at all...

So be sure to set Compiler language always together with std setting. Compiler default is not what I would expect there.


Mac OSX deployment target 10.8 and C++14
#15

@daniel Still having this linker problem. The link to Timur’s catch is not working anymore. Do you remember? What are the settings that you used to compile the AAX-SDK?

I’m using:
Standard LIbrary: LLVM C++
Deploymenet Target: 10.9
Language Dialect: C++11

Still not working… Any ideas?


#16

ok sorry, I’m an idiot. I didn’t see that the AAX-SDK Xcode project includes a second scheme for libcpp. It works with that.