May 11, 2004 shared library in D | ||||
---|---|---|---|---|
| ||||
Hi, I want to write a shared library in D for use with C-code. The following code shows a little example: ---- class A { public: this() { } } extern(C) { void myfunc() { A a = new A(); } } ---- The function "myfunc" should be accessed from the C-code. But when I try to create the shared library, I get the following error: % dmd -O -release -c test.d % gcc -shared test.o -lphobos /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/../../../../i686-pc-linux-gnu/bin/ld: a.out: undefined versioned symbol name _d_throw@4 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/../../../../i686-pc-linux-gnu/bin/ld: failed to set dynamic section sizes: Bad value collect2: ld returned 1 exit status So, what can be done (is it possible in general, what linker options are missed, what parts of D code are missing ...)? Thx, Frank |
May 11, 2004 Re: shared library in D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Frank Fischer | Frank Fischer wrote: > Hi, > > I want to write a shared library in D for use with C-code. The following > code shows a little example: > > ---- > class A > { > public: > this() > { > } > } > > extern(C) { > void myfunc() > { > A a = new A(); > } > } > ---- > > The function "myfunc" should be accessed from the C-code. But when I try > to create the shared library, I get the following error: > > % dmd -O -release -c test.d > % gcc -shared test.o -lphobos > /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/../../../../i686-pc-linux-gnu/bin/ld: > a.out: undefined versioned symbol name _d_throw@4 > /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/../../../../i686-pc-linux-gnu/bin/ld: > failed to set dynamic section sizes: Bad value > collect2: ld returned 1 exit status > > So, what can be done (is it possible in general, what linker options are missed, what parts of D code are missing ...)? > > Thx, > Frank Unless things have changed, dmd still doesn't support creation of shared libraries on the Linux platform. See http://www.digitalmars.com/d/dcompiler.html. Look under Linux Bugs: "Shared libraries cannot be generated." |
Copyright © 1999-2021 by the D Language Foundation