Re: Building against MY openSSL (libcrypto) static library ?
Re: Building against MY openSSL (libcrypto) static library ?
- Subject: Re: Building against MY openSSL (libcrypto) static library ?
- From: Heath Raftery <email@hidden>
- Date: Wed, 19 May 2004 20:49:46 +1000
On 19/05/2004, at 6:00 PM, Aurilien Hugeli wrote:
On 19 May 2004, at 1:45, Heath Raftery wrote:
Hi,
On 19/05/2004, at 4:36 AM, Aurilien Hugeli wrote:
my software heavily uses openSSL library (libcrypto.0.9.7). It works
perfectly under 10.3 since libcrypto.0.9.7.dylib is included in
panther.
But my software does not work in jaguar because jaguar only offers
libcrypto.0.9.6...
I also use libcrypto in my application, which I develop on Panther,
but the libcrypto version in Jaguar was "good enough" for my
purposes. Therefore, I just use the 10.2.7 SDK and tell Xcode to
target for OS 10.2. That forces the linker to dynamically use
libcrypto from the SDK, not from /usr/lib. So otool -L gives me:
/usr/lib/libcrypto.0.9.dylib (compatibility version 0.9.0, current
version 0.9.6)
For libcurl however, no libcurl.dylib exists in the 10.2.7 SDK, so I
am able to provide my own libcurl.a in /usr/local/lib and the linker
will statically link that in (as long as I specify -L/usr/local/lib).
To use this method on a static libcrypto though, you would have to
hide the libcrypto.dylib that is in the 10.2.7 SDK, which is starting
to look very hacky.
that's what i tried, i temporarily removed all crypto lib from
/usr/lib... i got warnings at linking and by binary did not launch...
so XCode did not really link against my static lib :(
Bummer. It is a hacky way of doing things, and if you hide the wrong
lib, can cause all sorts of issues (personal experience speaking). Not
sure what else to offer there.
almost every forums advice to simply build my own libcrypto0.9.7 for
jaguar.
I succeed to build it statically using fink, thanks to them ! and
tried to embed the library.
but now when i link my project to this new static library, the
products is still linked to the panther library !
(otool -L give me /usr/lib/libcrypto.0.9.7) so it is still linked to
a dynamic library !!
I've used this method as well, and it is a bit of a hassle forcing
the linker to use the static version. I played with the -static, -L,
-l, -Z and -search_paths_first linker options, but Xcode does work
quite hard to link dynamically. I think I was successful in the end,
using -L/usr/local/mystaticlibs -search_paths_first -lmylib or
something. That should allow you to place just the static libs in
mystaticlibs, and the linker will be required to use those first.
ok that's what i'll try next ! thanks
but just a question... since my app will be released to users, what
will happen to my static library ? should i embed it in my .app or not
?
When you link against a static lib, the code is actually added to your
executable. Your executable file size will increase, but your users
wont even know a library was used.
Heath
_______________________________________________
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.