#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