discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Linking frameworks does not work


From: Andreas Höschler
Subject: Re: Linking frameworks does not work
Date: Wed, 2 May 2018 16:51:03 +0200

Hi Andreas,

I'm not 100% sure how GNUStep frameworks are supposed to be linked but fact is under linux, it looks for shared libraries in all which is referenced in /etc/ld.so.conf (and /etc/ld.so.conf.d/* ). On the mac the path to a shared library is embedded in the library itself so when you link to it, the binary will remember the absolute path (or relative path to the binary). This is not the case under Linux.

I compile my libraries the way that they end up in /usr/local/lib and the headers into /usr/local/include/<frameworkname>/. That way they always work. But its not really the way OS X or GNUStep frameworks are supposed to work as now we dont have bundles anymore but more traditional libraries as in C.

So for the shared libraries to be considered by the linux dynamic library linker at start of a binary, the ldconfig path's have to be set (maybe over an environment variable which is set by the gnustep startup?). And that seems not to happen in your case. So if you pass it at link time, it can link but at runtime it cant find it anymore.

Thanks for this explanantion.

I added

/usr/local/lib

to /etc/ld.so.conf. It now has the content

include /etc/ld.so.conf.d/*.conf
/usr/local/lib

and called

ldconfig

No avail. Starting the app gives me the same does not recognize selector exception!? :-(

Regards,

 Andreas


reply via email to

[Prev in Thread] Current Thread [Next in Thread]