digitalmars.D.learn - Problems linking C and D code
- Jan =?UTF-8?B?U3TEmXBpZcWE?= (13/13) Oct 24 2009 Hi all,
- torhu (3/14) Oct 24 2009 Make sure there's a D main function define somewhere. With SDL you're
- Jan =?UTF-8?B?U3TEmXBpZcWE?= (11/32) Oct 24 2009 Thanks for the reply.
- torhu (6/36) Oct 24 2009 The Derelict project has D bindings for SDL, and seems to be a popular
- Jan =?UTF-8?B?U3TEmXBpZcWE?= (10/50) Oct 25 2009 Thanks for the suggestion. Using a different library does not answer my
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, -- Jan Stępień
Oct 24 2009
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.
Oct 24 2009
On Sat, 24 Oct 2009 15:56:05 +0200 torhu <no spam.invalid> wrote:On 24.10.2009 15:02, Jan Stępień wrote: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, -- Jan Stępień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.
Oct 24 2009
On 24.10.2009 16:17, Jan Stępień wrote:On Sat, 24 Oct 2009 15:56:05 +0200 torhu<no spam.invalid> wrote: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.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,
Oct 24 2009
On Sun, 25 Oct 2009 05:36:20 +0100 torhu <no spam.invalid> wrote:On 24.10.2009 16:17, Jan Stępień wrote:Thanks for the suggestion. Using a different library does not answer my question though. Why does the linker return 0, no error/warning messages are displayed and still there's no executable?On Sat, 24 Oct 2009 15:56:05 +0200 torhu<no spam.invalid> wrote:The Derelict project has D bindings for SDL, and seems to be a popular choice.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,Other than that, maybe out.exe is a special file name for the linker, or something. You could try another name, just in case.Thanks for the idea, I've tried various names for the output file. Unfortunately it did not help. Cheers, -- Jan Stępień
Oct 25 2009