Re: Debug/Release Library Matching
Re: Debug/Release Library Matching
- Subject: Re: Debug/Release Library Matching
- From: Ben Weiss <email@hidden>
- Date: Sat, 3 Sep 2005 23:33:09 -0700
On Sep 3, 2005, at 11:19 PM, Chris Espinosa wrote:
On Sep 3, 2005, at 11:06 PM, Ben Weiss wrote:
I'm porting an application from Codewarrior, which incorporates a
static library that comes in both debug and release flavors
(mylib_d.a, and mylib.a). How can I add these files to the
respective debug and release build configurations in my project,
such that the debug configuration links to mylib_d.a, and the
release configuration links to mylib.a?
XCode only seems to want to add the libraries to both
configurations at once (or neither), but obviously I need to match
up debug to debug and release to release. Any suggestions?
The best way to do this is to use a shared build folder between the
project that builds the static library and the project that builds
its clients. Both projects should have Debug and Release
configurations (the names are arbitrary, but should be the same in
each project).
When you build the static library's Debug configuration, it will
build into $(SYMROOT)/Debug/mylib.a, and when you build Release, it
will build into $(SYMROOT)/Release/mylib.a. Note that the library
names are the same but they're in per-configuration directories,
much like CodeWarior puts per-target intermediates into per-target
directories.
Then drag the static library project and drop it into your app
project. When you disclose it, it will show that it builds foo.a.
Drag that into the Link Binaries with Libraries build phase of your
target.
Then when you build the Debug configuration of your app, it will
use the Debug build folder, and automatically pick up the Debug
static library, and the same for the Release configuration.
If you really want the files in the same place and named
differently, then you have to use separate targets for your Debug
and Release versions of your app (and probably use just one
configuration). Add the mylib_d.a static library to the Debug
target and the mylib.a static library to the Release target, just
like in CodeWarrior.
Thanks for the info. The difficulty is that I don't have an XCode
project for the debug and release libraries; just the pre-built
static libraries themselves and corresponding header files. So I
don't think the nested project approach is going to work, per se.
Might there be some other way to work around this, short of having to
create multiple targets?
Anyway, I really hope the next XCode release will make it easier/
possible to do this with configurations... Feature request?
Ben
_______________________________________________
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