用DMD编译D项目

时间:2019-04-22 15:18:15

标签: d dmd

这可能是最愚蠢和新手的问题,但是我实际上如何在Windows上使用DMD编译D项目?

我尝试了以下命令:

  • dmd *
  • dmd *.d
  • cd .. && dmd {DirectoryName}
  • dmd file1.d file2.d

但是他们俩都没有将项目编译为可执行文件。

我想从该项目中生成.exe文件,但似乎不能。我只能编译项目中的一个文件或编译多个文件,但是只能编译.obj个文件,不能编译.exe ...

2 个答案:

答案 0 :(得分:2)

DUB最适合初学者:

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>

您可以将所有d文件复制到your-project \ source \目录,然后让dub进行所有艰苦的工作。

dub init由于某种原因无法从git bash中运行,因为它正在等待CLI上的输入。因此,您需要从cmd.exe dub init开始。 dub run应该可以从git bash正常工作。

如果从git bash运行它,请按Enter键7次,将接受所有默认值并创建项目。

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$

DUB中的相关问题

答案 1 :(得分:0)

如果您不喜欢Dub,可以尝试使用标准D编译器随附的 rdmd 。例如,假设您有一个main.d文件可以导入其他文件:

rdmd --build-only main.d            # Build
rdmd --build-only -g -debug main.d  # Build in debug mode
rdmd main.d                         # Build temporary executable and run it

如果要查看dub执行以构建项目的原始命令,可以使用:

dub build --force --verbose