Re: building Jaguar compatible applications
Re: building Jaguar compatible applications
- Subject: Re: building Jaguar compatible applications
- From: Nick Zitzmann <email@hidden>
- Date: Fri, 23 Jan 2004 02:04:26 -0800
On Jan 23, 2004, at 1:10 AM, Jens Miltner wrote:
What I'm not sure about is whether I need to add the frameworks my app
needs from the SDK folder as well, or whether I should leave the
frameworks from /System/Library/Frameworks/ (when I create a Carbon
project, it already contains those frameworks).
It should be OK if you use the frameworks in
/System/Library/Frameworks. You should get a build-time error if you
added a framework that isn't present in the SDK, except sometimes when
ZeroLink is turned on...
When I add the frameworks from /Developer/SDKs/MacOSX10.2.8/, will this
make my app look at that location for the frameworks when it launches?
Fortunately no. In the Mach-O ABI, the path to each library used by a
program is copied from the library's install path and stored in the
program. The frameworks in the SDKs (I think they might just be stub
libraries and not full frameworks) have the correct install path
specified already.
When I leave the framework from /System/Library/Frameworks/ won't Xcode
link in symbols that might not be available in previous systems?
It shouldn't do that if you're really using an SDK...
Are there any guidelines how to produce a backwards compatible
application?
I don't know if there are any formal guidelines posted anywhere, so
I'll tell you what's important.
1. If you have the ability to do so, you should test on the older
system. Even if GCC or Ld didn't catch anything, you might be using a
view in a nib that wasn't present in the old system, or a non-SDK
library wasn't compiled against the correct SDK (see below), or
something similar...
2. Don't forget about the libraries! **All** shared and static non-SDK
libraries used by the application, and the libraries that are linked to
those libraries, must be compiled against the SDK, or there's a good
chance they will not be backward compatible. I've already been bitten
by this once, you see...
3. Avoid messing with undocumented APIs wherever possible, since they
can change without notice and break forward _or_ backward
compatibility.
Nick Zitzmann
<http://seiryu.home.comcast.net/>
<http://www.freshlysqueezedsoftware.com/>
S/MIME signature available upon request
UNIX: Where /sbin/init is Job #1.
_______________________________________________
xcode-users mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/xcode-users
Do not post admin requests to the list. They will be ignored.