【问题标题】:Compile D project with DMD用 DMD 编译 D 项目
【发布时间】:2019-04-22 15:18:14
【问题描述】:

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

我尝试了这些命令:

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

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

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

【问题讨论】:

  • 这取决于项目...我是哪一个?
  • 有些人使用dub build,尽管接下来一般会尝试
  • @AdamD.Ruppe 我没有使用dub,因为dub init 需要很长时间才能完成一个项目。
  • 是的,我也不使用配音。但是您正在构建自己的项目?我可能只会列出文件,例如您的dmd file1.d file2.d...当您尝试这样做时会发生什么?
  • 执行dmd file1.d file2.d时有什么错误??您还提到了cd .. && dmd {DirectoryName} - 您使用的是 MSYS2 还是类似的?

标签: d dmd


【解决方案1】:

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中的相关问题

【讨论】:

    【解决方案2】:

    如果您不喜欢 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      • 1970-01-01
      • 2014-11-24
      • 1970-01-01
      相关资源
      最近更新 更多