| DMD(1) | The D Language Foundation | DMD(1) |
نام (NAME)
dmd - کامپایلر زبان دی ۲ (Digital Mars D2.x)
خلاصه دستور (SYNOPSIS)
dmd [فایلها...] [گزینهها...]
توضیحات (DESCRIPTION)
dmd کدهای منبع نوشتهشده به زبان برنامهنویسی دی (D) را کامپایل میکند.
گزینهها (OPTIONS)
- file, file.d, file.htm, file.html
- فایلهای منبع D برای کامپایل
- file.di
- فایلهای رابط D (فایلهای هدر D)
- file.o
- فایلهای شیء (Object) برای پیوند دادن
- file.a
- فایلهای کتابخانه برای پیوند دادن
- @cmdfile
- فایلی برای خواندن آرگومانهای خط فرمان بیشتر از آن، که میتواند شامل کامنتهای تکخطی با # باشد
- -allinst
- تولید کد برای تمام نمونهسازیهای قالب (Template Instantiations)
- -betterC
- عدم تولید برخی از اطلاعات زمان اجرا (Runtime) و توابع کمکی
- -boundscheck=[on|safeonly|off]
- بررسی محدوده آرایهها: فعال (on)، فقط در توابع @safe (safeonly)، یا غیرفعال (off)
- -c
- فقط کامپایل، بدون پیوند دادن (Link)
- -check=[assert|bounds|in|invariant|out|switch][=[on|off]]
- فعال یا غیرفعال کردن بررسیهای خاص
- -check=[h|help|?]
- نمایش اطلاعات درباره تمام بررسیهای موجود
- -checkaction=[D|C|halt|context]
- رفتار در صورت شکست assert/boundscheck/finalswitch
- -checkaction=[h|help|?]
- نمایش اطلاعات درباره تمام اقدامات بررسی موجود
- -color
- روشن کردن خروجی رنگی ترمینال
- -color=[on|off|auto]
- اجبار به روشن یا خاموش بودن خروجی رنگی، یا فقط زمانی که خروجی تغییر مسیر نیافته است (پیشفرض)
- -conf=filename
- استفاده از فایل پیکربندی در filename
- -cov
- بررسی پوشش کد (Code Coverage) و تولید فایل `.lst`
- -cov=ctfe
- گنجاندن کدهای اجرا شده در طول CTFE در گزارش پوشش کد
- -cov=nnn
- الزام حداقل nnn% پوشش کد
- -cpp=filename
- استفاده از filename به عنوان نام پیشپردازنده C برای فایلهای ImportC
- -D
- تولید مستندات
- -Dddirectory
- نوشتن فایل مستندات در directory
- -Dffilename
- نوشتن فایل مستندات در filename
- -d
- اجازه دادن به ویژگیها و نمادهای منسوخشده (Deprecated) بدون نمایش پیام
- -de
- صدور خطا هنگام استفاده از ویژگیها یا نمادهای منسوخشده (توقف کامپایل)
- -dw
- صدور پیام هشدار هنگام استفاده از ویژگیها یا نمادهای منسوخشده (پیشفرض)
- -debug
- کامپایل کدهای دیباگ
- -debug=ident
- کامپایل کدهای دیباگ مشخصشده با شناسه ident
- -debuglib=libname
- تنظیم کتابخانه دیباگ نمادین روی libname
- -defaultlib=libname
- تنظیم کتابخانه پیشفرض روی libname
- -deps
- چاپ وابستگیهای ماژول (imports/file/version/debug/lib)
- -deps=filename
- نوشتن وابستگیهای ماژول در filename (فقط importها)
- -dllimport=[none|defaultLibsOnly|externalOnly|all]
- مخصوص ویندوز: انتخاب نمادها برای dllimport
- -edition[=NNNN[filename]]
- تنظیم ویرایش زبان به سال NNNN، اعمال روی filename
- -extern-std=standard
- تنظیم سازگاری مَنگلینگ نام ++C با استاندارد standard
- -extern-std=[h|help|?]
- فهرست کردن تمام استانداردهای پشتیبانیشده
- -fIBT
- تولید کد ردیابی شاخه غیرمستقیم (Indirect Branch Tracking)
- -fPIC
- تولید کد مستقل از موقعیت (Position Independent Code)
- -fPIE
- تولید فایلهای اجرایی مستقل از موقعیت (Position Independent Executables)
- -ftime-trace
- فعال کردن پروفایلر زمان کامپایل، تولید فایل JSON حاوی نتایج
- -ftime-trace-granularity=μsecs
- حداقل دقت زمانی (به میکروثانیه) ردیابیشده توسط پروفایلر زمان (پیشفرض: 500)
- -ftime-trace-file=filename
- مشخص کردن فایل خروجی برای `-ftime-trace`
- -g
- افزودن اطلاعات دیباگ نمادین
- -gdwarf=version
- افزودن اطلاعات دیباگ نمادین DWARF (پیشفرض: 3)
- -gf
- تولید اطلاعات دیباگ برای تمام انواع ارجاعدادهشده
- -gs
- همیشه فریم پشته (Stack Frame) تولید شود
- -gx
- افزودن کد محافظتی پشته (Stack Stomp)
- -H
- تولید فایل هدر D
- -Hd=directory
- نوشتن فایل هدر در directory
- -Hf=filename
- نوشتن فایل هدر در filename
- -HC=[silent|verbose]
- نوشتن معادل هدر ++C در خروجی استاندارد (stdout)
- -HC=[?|h|help]
- فهرست کردن گزینههای موجود برای تولید فایل هدر ++C
- -HCd=directory
- نوشتن فایل هدر ++C در directory
- -HCf=filename
- نوشتن فایل هدر ++C در filename به جای stdout
- --help
- چاپ راهنما و خروج
- -I=directory
- جستجوی ماژولهای وارداتی (import) در directory
- -extI=directory
- جستجوی فایلهای وارداتی خارج از باینری در حال کامپایل، جهت تنظیم ماژول به عنوان DllImport
- -i[=pattern]
- گنجاندن ماژولهای وارداتی (import) در کامپایل
- -identifiers=[UAX31|c99|c11|all]
- مشخص کردن جدولهای غیر اسکی (non-ASCII) برای شناسههای D
- -identifiers-importc=[UAX31|c99|c11|all]
- مشخص کردن جدولهای غیر اسکی برای شناسههای ImportC
- -ignore
- گزینه منسوخشده؛ پراگماهای پشتیبانینشده اکنون همیشه نادیده گرفته میشوند
- -inline
- درونخطیسازی توابع (Inlining)
- -J=directory
- جستجوی فایلهای وارداتی متنی (String Imports) در directory
- -L=linkerflag
- ارسال linkerflag به پیونددهنده (Linker)
- -lib
- تولید فایل کتابخانه به جای فایلهای شیء (Object)
- -lowmem
- فعالسازی زبالهروب (Garbage Collector) برای خود کامپایلر
- -m32
- تولید کد ۳۲ بیتی
- -m64
- تولید کد ۶۴ بیتی
- -main
- افزودن تابع پیشفرض ()main در صورت عدم وجود (مثلاً برای تست واحد)
- -makedeps[=filename]
- چاپ وابستگیها در قالب سازگار با Makefile در filename یا stdout
- -man
- باز کردن صفحه راهنما در مرورگر وب
- -map
- تولید فایل .map پیونددهنده
- -mcpu=[baseline|avx|native]
- تنظیم معماری هدف برای تولید کد
- -mcpu=[h|help|?]
- فهرست کردن تمام گزینههای معماری
- -mixin=filename
- گسترش و ذخیره mixinها در فایل مشخصشده توسط filename
- -mv=package.module=filespec
- استفاده از filespec به عنوان فایل منبع برای package.module
- -noboundscheck
- عدم بررسی محدوده آرایهها (منسوخشده، از `-boundscheck=off` استفاده کنید)
- -nothrow
- فرض اینکه هیچ استثنایی (Exception) پرتاب نخواهد شد
- -nothrow-optimizations
- اجازه به نادیده گرفتن تخریبکنندهها (Destructors) هنگام بازپیچش پشته ناشی از Error در توابع nothrow
- -O
- بهینهسازی کد
- -o-
- عدم نوشتن فایل شیء (Object)
- -od=directory
- نوشتن فایلهای شیء و کتابخانه در directory
- -of=filename
- نامگذاری فایل خروجی به filename
- -op
- حفظ مسیر منبع برای فایلهای خروجی
- -oq
- نوشتن فایلهای شیء با نامهای کاملاً واجد شرایط (Fully Qualified)
- -os=os
- تنظیم سیستمعامل هدف روی os
- -P=preprocessorflag
- ارسال preprocessorflag به پیشپردازنده C
- -preview=name
- فعالسازی ویژگی زبانی آینده مشخصشده با name
- -preview=[h|help|?]
- فهرست کردن تمام ویژگیهای زبانی آینده
- -profile
- پروفایل کردن کارایی زمان اجرای کد تولیدشده
- -profile=gc
- پروفایل کردن تخصیصهای حافظه زمان اجرا
- -release
- عدم صدور قراردادها (Contracts) و assertها، و اجرای بررسی محدوده آرایهها فقط در توابع @safe
- -revert=name
- بازگردانی تغییر زبانی مشخصشده با name
- -revert=[h|help|?]
- فهرست کردن تمام تغییرات زبانی قابل بازگردانی
- -run
- کامپایل، پیوند و اجرای برنامه srcfile
- تولید کتابخانه مشترک (Shared Library / DLL)
- -target=triple
- استفاده از triple به عنوان arch-[vendor-]os[-cenv[-<cppenv]]
- -transition=name
- راهنمایی برای تغییر زبانی مشخصشده با name
- -transition=[h|help|?]
- فهرست کردن تمام تغییرات زبانی
- -unittest
- کامپایل کدهای تست واحد (Unit Tests)
- -v
- نمایش با جزئیات کامل (Verbose)
- -vasm
- فهرست کردن اسمبلی تولیدشده برای هر تابع
- -vcolumns
- چاپ شماره ستونها (کاراکترها) در پیامهای عیبیابی
- -verror-style=[digitalmars|gnu|sarif]
- تنظیم شیوه نمایش شماره فایل/سطر در پیامهای کامپایلر
- -verror-supplements=num
- محدود کردن تعداد پیامهای تکمیلی برای هر خطا (۰ یعنی نامحدود)
- -verrors=num
- محدود کردن تعداد پیامهای خطا/منسوخشدگی (۰ یعنی نامحدود)
- -verrors=[context|simple]
- تنظیم میزان پرحرفی پیامهای خطا
- -verrors=spec
- نمایش خطاهای ناشی از کامپایلهای گمانهزنی (Speculative) مانند `__traits(compiles, ...)`
- --version
- چاپ نسخه کامپایلر و خروج
- -version=ident
- کامپایل کدهای نسخه مشخصشده با شناسه ident
- -vgc
- فهرست کردن تمام تخصیصهای زبالهروب از جمله موارد پنهان
- میزان نمایانی پیشفرض نمادها
- -vtls
- فهرست کردن تمام متغیرهایی که در حافظه محلی رشته (Thread Local Storage) قرار میگیرند
- -vtemplates[=list-instances]
- نمایش آمار مربوط به نمونهسازی قالبها
- -w
- در نظر گرفتن هشدارها به عنوان خطا (توقف کامپایل)
- -wi
- نمایش هشدارها به صورت پیامهای اطلاعرسانی (ادامه کامپایل)
- -wo
- هشدار درباره استفاده از قابلیتهای منسوخشده و قدیمی (ادامه کامپایل)
- -X
- تولید فایل JSON
- -Xf=filename
- نوشتن فایل JSON در filename
- -Xcc=driverflag
- ارسال driverflag به راهانداز پیونددهنده (cc)
تغییرات زبانی (TRANSITIONS)
تغییرات زبانی فهرستشده با -transition=id:
- field
- فهرست کردن تمام فیلدهای تغییرناپذیر که یک نمونه شیء را اشغال میکنند
- complex
- نمایش پیامهای منسوخشدگی برای تمام موارد استفاده از انواع مختلط (Complex) یا موهومی (Imaginary)
- tls
- فهرست کردن تمام متغیرهایی که در حافظه محلی رشته قرار میگیرند
- in
- فهرست کردن تمام موارد استفاده از 'in' روی پارامترها
پیوند دادن (LINKING)
عملیات پیوند دادن پس از یک کامپایل موفق مستقیماً توسط کامپایلر dmd انجام میشود. برای جلوگیری از اجرای پیونددهنده توسط dmd، از گزینه -c استفاده کنید.
پیوند دادن واقعی با اجرای gcc انجام میشود. این کار سازگاری با ماژولهای کامپایلشده با gcc را تضمین میکند.
فایلها (FILES)
- /etc/dmd.conf
- فایل پیکربندی سراسری dmd در سیستم. برای جزئیات به dmd.conf(5) مراجعه کنید.
متغیرهای محیطی (ENVIRONMENT)
کامپایلر زبان دی dmd از متغیرهای محیطی زیر استفاده میکند:
- DFLAGS
- مقدار متغیر DFLAGS بهگونهای تفسیر میشود که گویی در خط فرمان به dmd پیوست شده است.
نویسندگان (AUTHORS)
حق نشر (c) ۱۹۹۹-۲۰۲۶ توسط بنیاد زبان دی (The D Language Foundation)، نوشته شده توسط والتر برایت (Walter Bright).
مستندات برخط (ONLINE DOCUMENTATION)
همچنین ببینید (SEE ALSO)
| 2026-08-30 | The D Language Foundation |