Re: command line building - I'm pissed at Apple [10.4]
Re: command line building - I'm pissed at Apple [10.4]
- Subject: Re: command line building - I'm pissed at Apple [10.4]
- From: Shawn Erickson <email@hidden>
- Date: Wed, 4 May 2005 09:56:11 -0700
On May 4, 2005, at 9:29 AM, Dieter Oberkofler wrote:
i'm just finishing porting an application that natively runs under
windows from OS 9 using codewarrior to the os x platform using
xcode 1.5. i have just ordered a new power mac g5 (running tiger
and xcode 2.0) and i'm starting to be a little afraid in reading
that under os x an application only seems to run when build for a
specific version of os x and that everything is sdk/framework
dependent even when shipping the production version. as a newby to
xcode i would very much be interested in the following basic
questions:
1) should an application build under xcode 1.5 not run on all
version of os x (10.0 up to tiger)? if not, is this intended and
are there workarounds?
It depends... but in general you can use the SDKs to target the
oldest version of Mac OS X you want your application to run on and it
will run their and on later versions of Mac OS X (careful of
deprecated APIs but none have been removed fully that I know).
The earliest SDK available is for 10.2.8. It you want to support
earlier systems you will actually have to build on those systems
using whatever tool chain works on those systems (some version of
project builder).
Review...
<http://developer.apple.com/documentation/DeveloperTools/Conceptual/
cross_development/CrossDevelopment.html>
Also note the following from <file:///Developer/About Xcode%
20Tools.pdf>...
Compatibility of Built Binaries
The GCC 4.0 compiler is the default compiler for Xcode, and has a
different C++ ABI than either the GCC
3.3 compiler (the default compiler for Xcode 1.x), the GCC 3.1
compiler (the default compiler for the
December 2002 release of the Developer Tools) or the GCC 2.95
compiler (the default compiler for earlier
releases of the Developer Tools). C++ ABI differences include
changes to name mangling, exception
handling, and class layout and alignment.
The GCC compiler’s ABI (Application Binary Interface) for C++
programs has been changing as the
compiler’s support for the full C++ language has become more
complete. As a result of these changes,
all of your C++ code, including libraries and frameworks, must be
built with the same compiler. Note that
this is not necessary for C or Objective C code.
IOKit-based device drivers built with the GCC 3.3 or GCC 4.0
compilers will run on Mac OS X v10.2
(Jaguar), Mac OS X v10.3 (Panther), and Mac OS X v10.4 (Tiger)
systems. However, you must use GCC
2.95.2 if you write kernel extensions that need to run on Mac OS X
v10.1.
2) to be portable between different operating systems, my
application uses several 3rd party libraries from oracle,
providence software and other vendors that actually have certified
their libraries (frameworks) for xcode 1.5. is xcode 2.0 intended
to run with xcode 1.5 libraries as well or not ?
It depends on how the libraries got built, one big gotcha is if they
are C++ libraries (expose their API via C++ or Objective-C++).
3) how can i ship my application (bundle application) in a way that
contains all the needed libraries (frameworks) and/or install them
automatically?
Research application bundle layout (frameworks directory) and Xcode
copy phases.
<http://developer.apple.com/documentation/CoreFoundation/Conceptual/
CFBundles/Concepts/BundleAnatomy.html>
-Shawn _______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden