Shared libraries under linux

alexhairyman alexhairyman at gmail.com
Mon Apr 16 17:59:07 PDT 2012


On Tue, 17 Apr 2012 02:46:28 +0200
"Sven-Hendrik Haase" <sh at lutzhaase.com> wrote:

> On Tuesday, 17 April 2012 at 00:41:46 UTC, alexhairyman wrote:
> > Just a tip for everybody, but Under Linux, you can do a lot 
> > with the Linker commands you know those -L ones, besides being 
> > able to link with shared, you can also specify where the ELF 
> > binary will look to find your D shared library, by using -L-r 
> > which embeds a search path in your ELF binary, handy for 
> > updateable libraries, or a plugin system. I have a complete 
> > example somewhere on my laptop if anyone is interested. This is 
> > a native feature of ld so it should work almost anywhere.
> 
> For a plugin system, wouldn't you use dlopen and link to dl?
> 
> Also, you might as well use LD_LIBRARY_PATH and rpath-stripped 
> libs/bins instead which seems like the cleaner solution to me.

True, that was an excited blurb of misinformation I gave there, but rpath keeps you from having to use LD_LIBRARY_PATH which would require you to add a script to first set, then call the application, and while it is not much of a burden, it makes things a little bit easier to use. And is there a way to use libdl in a "D-ish" way? I remember the Old c++ way being a bit sloppy but not at all bad, simply requiring you to create a function that returned a class (if my memory decides to work).And the DDl project is dead for now, and shows little hope of revival. If someone could point me in the direction of a similar library I would very much appreciate it! And yes, the plugin system would be nearly impossible (if not outright)

-- 
alexhairyman <alexhairyman at gmail.com>


More information about the Digitalmars-d mailing list