On Oct 29, 2007, at 1:01 PM, Rick Mann wrote: On Oct 29, 2007, at 12:48 PM, Peter O'Gorman wrote:
The /usr/local/lib in /Developer/SDKs/MacOSX10.4u.sdk on my leopard
system is empty. Do you have a libPng.dylib in yours?
For me, usr/local/lib in /Developer/SDKs/MacOSX10.4u.sdk is a symbolic link to /usr/local/lib, which has a lot of stuff, but now I'm remembering that I had issues a while back, and that I *might* have done some linking out of the SDK folder.
Apple provides a symlink in the 10.4u SDK to local libraries you may have installed in order to let you build against the SDK if you have locally-built code. Normally /usr/local/lib is empty so this has no effect. Thing is, libPng in this case is used by Nano, a Carbon C++ development framework, and Nano does not go installing stuff anywhere besides its own directory. So, Nano is relying on something in the system default libraries.
You (or Nano) should link against the libPng in ImageIO.framework, not anything in /usr/local/lib. Apple ships with /usr/local empty, and setting a symlink to it in your SDK is now no longer necessary with Composite SDKs in Xcode 3.0. It's puzzling, for sure, because I think Mac OS X ships with nothing in /usr/local, right?
Right. That implies it's picking up a hand-built or hand-installed libPng, and that version was not built Universal by whomever built it. Related: if I target the 10.5 SDK, but don't actually use functionality only in 10.5, will my binary run on 10.4?
If you set the MAC_OS_X_VERSION_MIN_REQUIRED to 1040 and use the 10.5 SDK, your apps should launch on 10.4 but be able to take advantage of 10.5 features. Make sure to turn off Objective-C 2.0, which will not deploy to 10.4.
Chris |