Re: [Xcode-users] dylib Version Introspection?
Re: [Xcode-users] dylib Version Introspection?
- Subject: Re: [Xcode-users] dylib Version Introspection?
- From: Alexander von Below <email@hidden>
- Date: Wed, 01 Oct 2008 19:39:23 +0200
Thank you both very much!
Alex
Am 01.10.2008 um 18:32 schrieb Peter O'Gorman:
Chris Hanson wrote:
On Oct 1, 2008, at 8:35 AM, Peter O'Gorman wrote:
I do not know if there is an easier way.
There is. :)
The header <mach-o/dyld.h> defines NSVersionOfRunTimeLibrary() and
NSVersionOfLinkTimeLibrary().
These are documented in the header and in the dyld(3) man page:
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/dyld.3.html
Duh. Silly me.
Still, they require the library to know its own name, whereas
something
like this, does not (although this is also not exactly well tested :-
p):
int getver() {
#ifdef __LP64__
struct mach_header_64 * mh = &_mh_dylib_header;
struct load_command * lc = (char*)mh + sizeof(struct mach_header_64);
#else
struct mach_header * mh = &_mh_dylib_header;
struct load_command * lc = (char*)mh + sizeof(struct mach_header);
#endif
uint32_t i = 0;
int retval = -1;
for (;i < mh->ncmds; i++) {
if (lc->cmd == LC_ID_DYLIB) {
retval = ((struct dylib_command *)lc)->dylib.current_version;
break;
}
else {
lc = (char*)lc + lc->cmdsize;
}
}
return retval;
}
I guess in the majority of cases the developer will know what the
library's name will be, so this is unnecessary, oh well, I think I
will
just have another coffee and get back to work :)
Peter
--
Peter O'Gorman
http://pogma.com
_______________________________________________
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