Shared library in D on Linux
GreatEmerald
pastas4 at gmail.com
Sat Apr 14 12:43:55 PDT 2012
On Sunday, 8 April 2012 at 08:45:46 UTC, Timo Westkämper wrote:
> dmd -g -c test.d -fPIC
> ld -shared -o libtest.so test.o -lrt -lphobos2 -lpthread
> gcc -g main.c -ldl -lpthread
Hmm, wouldn't using DMD directly for the first two compilation
steps do the same thing, just faster and simpler? Like this:
dmd -shared -fPIC test.d
Although in my tests, it always gives me an error like this, no
matter which way I try to compile it:
ld: /usr/lib64/libphobos2.a(lifetime_368_548.o): relocation
R_X86_64_32 against `_D15TypeInfo_Shared7__ClassZ' can not be
used when making a shared object; recompile with -fPIC
/usr/lib64/libphobos2.a: could not read symbols: Bad value
Though this is still with DMD v2.058, so perhaps there were some
changes with this in the latest version. Or I'm missing something.
By the way, what is the status of D shared libraries on Windows?
More information about the Digitalmars-d
mailing list