Re: Embedding framework, pbxcp No such file or directory
Re: Embedding framework, pbxcp No such file or directory
- Subject: Re: Embedding framework, pbxcp No such file or directory
- From: Jeffrey Wilson <email@hidden>
- Date: Thu, 20 Dec 2007 15:46:26 -0500
On Dec 20, 2007, at 12:14 PM, Chris Espinosa wrote:
On Dec 20, 2007, at 7:31 AM, Jeffrey Wilson wrote:
The project's framework search path is setup as follows:
$(HOME)/Library/Frameworks /System/Library/Frameworks /Library/
Frameworks $(FRAMEWORK_SEARCH_PATHS)
How do I tell the copy frameworks build phase to use something like
$(HOME)/Library/Frameworks rather than $(PROJECT_DIR)/../../../
Library/Frameworks? Another way of putting it, why is the copy
phase not using the framework location as found in the search path?
Because the Framework Search Path is only used by the compiler for
searching for headers and by the linker for searching for link
libraries; the Copy Files path is content-agnostic and doesn't
"search" for its operands, it requires specific references.
It looks like you just have too many ".." items in your path. It's
looking in /Library/Frameworks, not /Users/withdrawn/Library/
Frameworks.
Right. There are two extra "../" which pushes the path back to root.
The extra ".." are due to my two extra subdirectories for my project
as opposed to that for another user.
One way to make this easier is to use Source Trees. Have everybody
on the team define the same variable in Source Trees (e.g.
SDL_FRAMEWORK_DIR) and set it to the directory that contains their
copy of the SDL framework, then in the project set its reference to
Relative to Source Tree and pick that one. That way everybody can
put it wherever they want, and as long as you all have the same
variable set to the appropriate value on each system, your project
will work on everybody's configuration.
I understand what you mean by adding a Source Tree entry (I think).
Ah! I probably added the frameworks and chose "Relative to project".
Now this makes some sense. I found links about it:
http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeUserGuide/Contents/Resources/en.lproj/01_40_tasks_add_files/chapter_7_section_4.html#/
/apple_ref/doc/uid/TP40002666-BBCDFECB
and
http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeUserGuide/Contents/Resources/en.lproj/01_40_tasks_add_files/chapter_7_section_6.html#/
/apple_ref/doc/uid/TP40002666-CHDDEFFF
Anyhow, this seems to be pretty dumb behavior, but there is not a much
better way of handling different directory structures on each persons'
machine (unless the Copy phase actually recognized relative
locations...).
So, I add a Source Tree with Setting Name = USER_FRAMEWORKS, Display
Name = My_Frameworks, and Path = /Users/jeff/Library/Frameworks.
However, when I go to add the frameworks back to my project, I do not
get any new "Reference" pulldown options. If I Get Info on each of
the frameworks (after adding them as Default), then I can change the
Path Type to Relative to My_Frameworks.
Hitting some linker errors now, but I can hopefully figure them out.
Thanks Chris.
Jeff
_______________________________________________
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