Скомпилировать общий проект с DMD

#d #dmd

#d #dmd

Вопрос:

Это может быть самым глупым вопросом новичка, но как мне на самом деле скомпилировать общий проект с помощью DMD в Windows?

Я пробовал эти команды:

  • dmd *
  • dmd *.d
  • cd .. amp;amp; dmd {DirectoryName}
  • dmd file1.d file2.d

Но ни один из них не компилирует проект в исполняемый файл.

Я хочу создать .exe файл из этого проекта, но, похоже, я не могу. Я могу скомпилировать только один файл в проекте или скомпилировать несколько, но только .obj файл, а не .exe

Комментарии:

1. Это зависит от проекта… какой из них я это делаю?

2. некоторые используют dub build , хотя это было бы следующим, что нужно попробовать в целом

3. @AdamD.Ruppe я не использую, dub потому что dub init создание проекта занимает целую вечность.

4. да, я тоже не использую dub. Но вы создаете свой собственный проект? Я бы, наверное, просто перечислил файлы, как ваши dmd file1.d file2.d … что происходит, когда вы пытаетесь это сделать?

5. Какие-либо ошибки при выполнении dmd file1.d file2.d ?? Также вы упомянули cd .. amp;amp; dmd {DirectoryName} — используете ли вы MSYS2 или аналогичный?

Ответ №1:

DUB самый простой для начинающих:

 C:Users217216x715132Desktoptmp1>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:Users217216x715132Desktoptmp1'.
Package successfully created in .

C:Users217216x715132Desktoptmp1>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:Users217216x715132Desktoptmp1>
  

Вы можете скопировать все ваши общие файлы в свой каталог-project source и позволить dub выполнять всю тяжелую работу.

dub init по какой-то причине не работает с git bash, поскольку ожидает ввода в CLI. Итак, вам нужно dub init из cmd.exe . 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:Users217216x715132Desktoptmp1'.
Package successfully created in .

arun MINGW64 ~/Desktop/tmp1$
  

Связанная проблема в дублировании

Ответ №2:

Если вам не нравится Dub, вы можете попробовать 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