ddmd

Compile D project with DMD


This might be stupidiest and newbie's question, but how do I actually compile D project with DMD on windows?

I tried these commands:

But neither of them compile the project to executable.

I want to produce .exe file out of that project, but it seems I can't. I can only compile one file in the project or compile multiple, but only .obj file, not .exe...


Solution

  • DUB is the easiest for beginners:

    C:\Users\217216x715132\Desktop\tmp1>dub init
    Package recipe format (sdl/json) [json]:
    Name [tmp1]:
    Description [A minimal D application.]:
    Author name [217216X715132]:
    License [proprietary]:
    Copyright string [Copyright © 2019, 217216X715132]:
    Add dependency (leave empty to skip) []:
    Successfully created an empty project in 'C:\Users\217216x715132\Desktop\tmp1'.
    Package successfully created in .
    
    C:\Users\217216x715132\Desktop\tmp1>dub run
    Performing "debug" build using dmd for x86.
    tmp1 ~master: building configuration "application"...
    Linking...
    Running .\tmp1.exe
    Edit source/app.d to start your project.
    
    C:\Users\217216x715132\Desktop\tmp1>
    

    You can copy all your d files to your-project\source\ directory and let dub do all the hard work.

    dub init doesn't work from git bash for some reason, as it waits for input on CLI. So you need to dub init from cmd.exe. dub run should work fine from git bash.

    If you run it from git bash, press enter key 7 times, all the defaults will be accepted and the project will be created.

    arun MINGW64 ~/Desktop/tmp1$ dub init
    
    
    
    
    
    
    
    Package recipe format (sdl/json) [json]: Name [tmp1]: Description [A minimal D application.]: Author name [217216X715132]: License [proprietary]: Copyright string [Copyright © 2019, 217216X715132]: Add dependency (leave empty to skip) []: Successfully created an empty project in 'C:\Users\217216x715132\Desktop\tmp1'.
    Package successfully created in .
    
    arun MINGW64 ~/Desktop/tmp1$
    

    Related issue in DUB