Using D libs in C

Steven Schveighoffer schveiguy at yahoo.com
Mon Feb 7 07:32:25 PST 2011


On Mon, 07 Feb 2011 06:42:46 -0500, spir <denis.spir at gmail.com> wrote:

> On 02/07/2011 07:53 AM, GreatEmerald wrote:
>> Hmm, no, it won't work right on Linux for some reason. This is the  
>> output:
>>
>> /usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../libphobos2.a(deh2_4e7_525.o):  
>> In
>> function `_D2rt4deh213__eh_finddataFPvZPS2rt4deh213DHandlerTable':
>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh213DHandlerTable+0x4):
>> undefined reference to `_deh_beg'
>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh213DHandlerTable+0xc):
>> undefined reference to `_deh_beg'
>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh213DHandlerTable+0x13):
>> undefined reference to `_deh_end'
>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh213DHandlerTable+0x37):
>> undefined reference to `_deh_end'
>> collect2: ld returned 1 exit status
>> --- errorlevel 1
>>
>> The shell script I'm using to compile it is:
>>
>> #!/bin/sh
>> dmd -m32 -c -lib dpart.d
>> gcc -m32 -c cpart.c
>> dmd -m32 cpart.o dpart.a /usr/lib/libphobos2.a
>>
>> (Although it appears that you don't need to explicitly link with  
>> libphobos2, it
>> does it automatically... and fails with the above error.) Any ideas  
>> about what the
>> error means?
>
> Take my words with much doubt, I've few exp in that.
> Are you sure you did use same source under both OSes?
> 	"undefined reference to `_deh_end' / `_deh_beg'"

deh == d exception handling (or handler, not sure) ;)

Looks like the module that's failing to link is rt.deh

-Steve


More information about the Digitalmars-d-learn mailing list