Thread overview
Creating a shared library in D : undefined symbol: _deh_beg
Mar 31, 2012
Timo Westkämper
Apr 01, 2012
mta`chrono
Apr 01, 2012
Jacob Carlborg
Apr 01, 2012
Timo Westkämper
March 31, 2012
I just created a shared library in D using DMD in Ubuntu and run into the following error when trying to use it

  undefined symbol: _deh_beg

I found this old thread where it is suggested to create a dummy main method : http://lists.puremagic.com/pipermail/digitalmars-d/2007-October/026970.html

I did that and it fixed the error, but it doesn't seem quite right.

My DMD call looks like this

  dmd -shared -fPIC <DFILES HERE> -I../src -ofbeep.so

April 01, 2012
The compiler is able to generater position independant code but as far as I remember, there are still some issues in druntime which make it difficult to create dynamic librarys in D. You need to somehow initialize the runtime.
April 01, 2012
On 2012-03-31 22:13, "Timo Westkämper" <timo.westkamper@gmail.com>" wrote:
> I just created a shared library in D using DMD in Ubuntu and run into
> the following error when trying to use it
>
> undefined symbol: _deh_beg
>
> I found this old thread where it is suggested to create a dummy main
> method :
> http://lists.puremagic.com/pipermail/digitalmars-d/2007-October/026970.html
>
> I did that and it fixed the error, but it doesn't seem quite right.
>
> My DMD call looks like this
>
> dmd -shared -fPIC <DFILES HERE> -I../src -ofbeep.so

As far as I know the runtime is not ready for shared libraries yet.

-- 
/Jacob Carlborg
April 01, 2012
On Sunday, 1 April 2012 at 13:16:50 UTC, Jacob Carlborg wrote:
> On 2012-03-31 22:13, "Timo Westkämper" <timo.westkamper@gmail.com>" wrote:
>> I just created a shared library in D using DMD in Ubuntu and run into
>> the following error when trying to use it
>>
>> undefined symbol: _deh_beg
>>
>> I found this old thread where it is suggested to create a dummy main
>> method :
>> http://lists.puremagic.com/pipermail/digitalmars-d/2007-October/026970.html
>>
>> I did that and it fixed the error, but it doesn't seem quite right.
>>
>> My DMD call looks like this
>>
>> dmd -shared -fPIC <DFILES HERE> -I../src -ofbeep.so
>
> As far as I know the runtime is not ready for shared libraries yet.

I will try something like this
http://stackoverflow.com/questions/9758255/d2-calling-writefln-in-d-shared-libraries-from-c-side