Leopard xcode link error


#1
Ld /Users/atom/devel/example/build/Release/example.app/Contents/MacOS/example normal i386
    cd /Users/atom/devel/example
    /Developer/usr/bin/g++-4.0 -o /Users/atom/devel/example/build/Release/example.app/Contents/MacOS/example -L/Users/atom/devel/example/build/Release -F/Users/atom/devel/example/build/Release -filelist /Users/atom/devel/example/build/example.build/Release/example.build/Objects-normal/i386/example.LinkFileList /Users/atom/devel/juce/bin/libjucedebug.a -framework Carbon -framework IOKit -framework CoreMIDI -framework CoreAudio -framework QuickTime -framework OpenGL -framework AGL -arch i386 -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk
Undefined symbols:
  "_NSApplicationLoad", referenced from:
      juce::SystemStats::initialiseStats()      in libjucedebug.a(juce_mac_SystemStats.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status

this happens with anythink linked to libjuce, only debug mode didn’t check the release, is there something extra in leopard (some framework) that has to be linked in the juce library ?


#2

Link in the Cocoa Framework from /System/Library/Frameworks

I believe the NSApplicationLoad function and the new Web Component require it.


#3

that helped, thanks

i think this should go into the README, cause i based the list of frameworks on that.


#4

Same problem trying to link Juce’s VST plugin example, on OS X 10.4 using Xcode 2.5.
Tried to add /System/Library/Frameworks or /System/Library/Frameworks/Cocoa.framework in the target’s “Framework search paths” field, but didn’t help.
Any idea?


#5

to get that working i had to set the right SDK versions in project properties, what version did you set for Tiger you can have 10.3.9 or 10.4u, the problem might be somewhere there (i had to change the version in at least two places in the project).


#6

Everything now compiles fine… Unfortunately, at first glance using Juce’s latest source files doesn’t seem to fix my problems. I’ll double check tomorrow but it seems that I still encounter the issues I seemed to have with v1.45:

  • when wrapping the Juce demo VST plugin into a AU component using Fxpansion VST2AU, the plugin GUI doesn’t seem to get the mouse events: nothing happens wherever you click. Furthermore, the counter that apparently counts only when the host’s sequencer is running (i.e. when processing audio) counts all the time. I experienced this with Live, that accepts both VST and AU: the VST works fine, but the VST wrapped as a AU doesn’t (inactive GUI and counter running even when sequencer stopped)

  • OK, I know there’s no point in using VST2AU as Juce allows to make a AU plugin very easily. However, I compiled the Juce demo AU plugin, and it doesn’t seem to be detected by Live/Logic… As long as the AU component is in one of the library/audio/plugins/components/ folder, which is where the xcode project puts it, it should be seen by the host (assuming it’s decently configured…), shouldn’t it?

Anyone else experienced the same kind of issues, or am I doing something stupid? Maybe I’ll start a new topic with this, as this becomes unrelated to the original post.


#7

I had the same issue with the AU not showing up in Logic, and after a LONG time wondering what was going on, finally tracked it down to a build setting (“force package info generation”). At least, I think that’s what was causing it, though I’m not 100% sure.


#8

I checked the “force package info generation” flag in the JuceDemoAU but it didn’t help. I also tried to build in release mode (using debug mode before), just in case, but no luck.

So, basically, I can’t get the AU plugin example to work. It’s like Logic’s AU manager just doesn’t notice it’s there: it doesn’t even report a failure in trying to load JuceDemoAU, it’s just not in the list of the AU components present in the system be they functional or not.


#9

When I had this problem it was only in Logic - the plugins worked fine in auval, au lab, and all the other hosts. And the plugins also worked fine on other people’s machines. I asked the Logic team at apple, but they had no ideas, and when I sent them my non-functioning plugins, they worked fine when they tried them!

It does seem to be related to whether the OS has correctly marked the folder as a package, but I couldn’t work out exactly why. For me, rebuilding it with that setting changed seemed to do the trick, and now I can’t seem to make it stop working again!


#10

Thanks Jules. I was finally given the solution by a forum member: it’s a bug in Apple’s audio unit stuff in XCode V2.5 when building for PPC (i.e. the config I have) : http://lists.apple.com/archives/coreaudio-api/2007/Nov/msg00040.html

After I edited Apple’s SDK code and recompiled, the JuceDemoAU got detected!