Problems linking C and D code
torhu
no at spam.invalid
Sat Oct 24 21:36:20 PDT 2009
On 24.10.2009 16:17, Jan Stępień wrote:
> On Sat, 24 Oct 2009 15:56:05 +0200
> torhu<no at spam.invalid> wrote:
>> On 24.10.2009 15:02, Jan Stępień wrote:
>> > Hi all,
>> >
>> > I've got a problem with linking two object files on Windows with an
>> > external *.lib file. First one is compiled C code, second one is in D.
>> > I'm using D2.
>> >
>> > $ dmc -c first.c -I path/to/SDL/include
>> > $ dmd -c second.d
>> >
>> > First two commands create two *.obj file. After running
>> >
>> > $ dmd first.obj second.obj path/to/SDL.lib -ofout.exe
>> >
>> > no "out.exe" file is created but the command returns 0. An "out.map"
>> > file is created, though. Where am I doing something wrong?
>> >
>> > Cheers,
>>
>> Make sure there's a D main function define somewhere. With SDL you're
>> probably supposed to link with SDLmain.lib.
>
> Thanks for the reply.
>
> There is int main(string[] args) function in second.d. I tried linking
> in both combinations, with SDLmain.lib only and with both SDL.lib and
> SDLmain.lib - results are the same, unfortunately.
>
> I also tried linking with SDL.dll instead of SDL.lib, but dmd exited
> with a message "unrecognized file extension dll".
>
> Cheers,
The Derelict project has D bindings for SDL, and seems to be a popular
choice.
http://www.dsource.org/projects/derelict
Other than that, maybe out.exe is a special file name for the linker, or
something. You could try another name, just in case.
More information about the Digitalmars-d-learn
mailing list