Re: Linking to libcrypto
Re: Linking to libcrypto
- Subject: Re: Linking to libcrypto
- From: "Justin C. Walker" <email@hidden>
- Date: Sun, 2 Nov 2003 21:31:02 -0800
On Sunday, November 2, 2003, at 09:04 PM, Ben Kennedy wrote:
On 02 11 2003 at 11:50 pm -0500, Justin C. Walker wrote:
Just a note: apps typically will stubbornly not be able to tell
whether
a file ref is a symbollic link. That's the point. Some utilities are
designed to distinguish, to assist in system management, but
otherwise,
it's By Design that symbolic links are not distinguished from the real
thing.
I fully understand what you're saying. This is one situation where you
would expect Xcode to be smart enough to do as it's told and not what
it
thinks it should do; that is to say, don't resolve the symlink and then
forget about the symlink.
I'm not clear what you want to happen then. The symbolic link is just
a file name. It lets you (in this case) give a less-specific name and
end up with what the system thinks is the best version for you. If you
give more-specific names, you (I) would expect to be potentially more
version-dependent.
I admit I do not have a full grasp on library versioning and
dependencies
and whatnot,
I'm with you here.
but based on my understanding, I want my binary to say "hey
dyld, please link in libcrypto of any version". That's my intent in
pointing xcode to libcrypto.dylib (or libcrypto.0.9.dylib as I ended up
doing), as opposed to libcrypto.0.9.7.dylib, which results in "hey
dyld,
please link libcrypto 0.9.7 which is only available on panther".
I think this is where expectations meet reality. To get an answer,
we'll need one of the Pros to provide it.
Why libcrypto is showing two versions is a puzzle; I'd expect
something
like
libcripto -> libcrypto.0.9 -> libcrypto.0.9.7
as symlinks, with only the latter a real file. That way, you can name
the library less and less specifically.
Precisely what I expected as well.
I suppose that it's the library itself, not the name by which you
reference it, that dictates this. If so, I'm not sure my simple
description is accurate. For frameworks, I think this works, but for
plane old shared libraries, Mac OS X may not actually be able to handle
a different approach to versioning.
BTW, how does linking against 'libcrypto.dylib' create a version
dependency?
Because on Panther, libcrypto.dylib resolves to libcrypto.0.9.7, which
is
a later version than is available on Jaguar, and consequently the app
will not run on same.
This may not relate, but don't you have a problem building on 10.3 and
deploying on 10.2 in general? Did you install the 10.2 libraries with
Xcode? If not, it's possible that you can solve your problem that way.
Cheers,
Justin
--
/~\ The ASCII Justin C. Walker, Curmudgeon-at-Large
\ / Ribbon Campaign
X Help cure HTML Email
/ \
_______________________________________________
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.