status of shared libs

Maxim Fomin maxim at maxim-fomin.ru
Sun Apr 7 21:35:59 PDT 2013


On Monday, 8 April 2013 at 01:14:19 UTC, Ellery Newcomer wrote:
> On Sunday, 7 April 2013 at 06:03:38 UTC, Walter Bright wrote:
>> On 4/6/2013 7:15 PM, Ellery Newcomer wrote:
>>> dmd  -unittest -fPIC -defaultlib=phobos2so -shared test1.d 
>>> -oflibtest1.so
>>> gcc  test1.c `pwd`/libtest1.so -L/usr/lib64/dmd/ 
>>> -L/usr/lib/dmd/ -o test1.x
>>> /lib64/libphobos2so.so: undefined reference to `_Dmain'
>>> collect2: error: ld returned 1 exit status
>>>
>>>
>>> _Dmain? wat?
>>
>> _Dmain is the mangled name for main() in your program.
>
> Yes, I know, but does it make sense to provide it when I call 
> my shared lib from C?

DMD inserts some additional info in object file if main() is 
present and sometimes it is required. One of the solutions is to 
use dummy D module (with main function defined) which forwards 
startup arguments to C main function.


More information about the Digitalmars-d mailing list