Juce library vs amalgamated


I’ve been getting these intermittent linker errors lately:

Undefined symbols:
  "_NSURLIsHiddenKey", referenced from:
      _NSURLIsHiddenKey$non_lazy_ptr in libjuce.a(juce_mac_NativeCode.o)
     (maybe you meant: _NSURLIsHiddenKey$non_lazy_ptr)
  "_pthread_setname_np", referenced from:
      juce::Thread::setCurrentThreadName(juce::String const&)in libjuce.a(juce_mac_NativeCode.o)
  "_fopen$UNIX2003", referenced from:
      OggVorbisNamespace::_analysis_output_always(char const*, int, float*, int, int, int, long long)in libjuce.a(juce_OggVorbisAudioFormat.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status

they go away if I include the amalgamated instead of linking to a library. Still investigating - I recompiled and got them to go away for a bit but now it’s back. Might be particularly on plugins and not standalones too … not sure, will post here.

In the meantime - thought it might make more sense to someone else. Let me know if it rings any bells or you have had these issues before.


Are you using the same Target OS and Base SDK for the libary and your project?


Yup, my thoughts exactly. I thought I had them compiling with the same settings, but apparently not. Putting it here just for reference:

It looks I compiled the juce libs with base 10.6 and the project using 10.5. None of the errors show up for standalone apps, so I hadn’t realized the mismatch. When trying to compile a plugin however, the three errors above appear.