'\" t .\" Title: crystal-build .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-07-23 .\" Manual: Crystal Compiler Command Line Reference Guide .\" Source: crystal 1.21.0 .\" Language: Persian .\" .TH "CRYSTAL\-BUILD" "1" "2026-07-23" "crystal 1.21.0" "Crystal Compiler Command Line Reference Guide" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" crystal-build \- کامپایل کردن یک برنامه Crystal .SH "خلاصه دستور (SYNOPSIS)" .sp \fBcrystal build\fP [options] [programfile] [\-\-] [arguments] .SH "گزینه‌ها (OPTIONS)" .sp \fB\-\-cross\-compile\fP .RS 4 تولید یک فایل شیء (object file) برای کامپایل متقاطع (cross compilation) و چاپ دستور ساخت فایل اجرایی. فایل شیء باید به سیستم مقصد کپی شده و دستور چاپ‌شده در آنجا اجرا شود. این پرچم عمدتاً برای پورت کردن کامپایلر به پلتفرم‌های جدید تعبیه شده است؛ در صورت امکان، کامپایلر را مستقیماً روی پلتفرم مقصد اجرا کنید. .RE .sp \fB\-d\fP, \fB\-\-debug\fP .RS 4 تولید خروجی حاوی نمادهای اشکال‌زدایی (debug symbols). این نمادها هنگام اشکال‌زدایی برنامه ساخته‌شده با ابزارهایی مانند lldb، gdb، valgrind و غیره خوانده می‌شوند و نگاشتی به کد منبع اصلی برای این ابزارها فراهم می‌کنند. .RE .sp \fB\-\-no\-debug\fP .RS 4 تولید خروجی بدون هیچ‌گونه نماد اشکال‌زدایی. .RE .sp \fB\-D\fP \fIFLAG\fP, \fB\-\-define\fP \fIFLAG\fP .RS 4 تعریف یک پرچم زمان کامپایل. این گزینه برای تعریف شرطی نوع‌ها، متدها یا دستورها بر اساس پرچم‌های در دسترس در زمان کامپایل کاربرد دارد. پرچم‌های پیش‌فرض از سه‌گانه مقصد (target triple) ارائه‌شده با \fB\-\-target\-triple\fP یا در صورت عدم تعیین، از پیش‌فرض میزبان برگرفته می‌شوند. .RE .sp \fB\-\-emit\fP [asm|llvm\-bc|llvm\-ir|obj] .RS 4 فهرستی جداشده با کاما از انواع خروجی برای تولید توسط کامپایلر. می‌توانید از این گزینه برای مشاهده LLVM IR، بایت‌کد LLVM، فایل اسمبلی و فایل‌های شیءِ (object) تولیدشده استفاده کنید. .RE .sp \fB\-\-x86\-asm\-syntax\fP [att|intel] .RS 4 انتخاب گویش اسمبلی برای \fB\-\-emit=asm\fP. مقدار پیش‌فرض \f(CRatt\fP است که بیانگر ساختار دستوری AT&T بوده و توسط ابزارهایی چون GNU Assembler پشتیبانی می‌شود. مقدار \f(CRintel\fP ساختار دستوری Intel را انتخاب می‌کند که برای ابزارهای Windows ارجحیت دارد. .RE .sp \fB\-\-frame\-pointers\fP [auto|always|non\-leaf] .RS 4 کنترل حفظ اشاره‌گرهای فریم (frame pointers). مقدار پیش‌فرض، \f(CR\-\-frame\-pointers=auto\fP، اشاره‌گرهای فریم را در ساخت‌های debug نگه می‌دارد و تلاش می‌کند آن‌ها را در ساخت‌های release حذف کند (برخی پلتفرم‌ها برای حفظ عملکرد خود نیازمند فعال ماندن آن‌ها هستند). مقدار \f(CR\-\-frame\-pointers=always\fP همیشه آن‌ها را حفظ می‌کند، و مقدار non\-leaf حفظ آن‌ها را فقط در توابع غیر برگ (non-leaf) الزامی می‌سازد. .RE .sp \fB\-f\fP text|json, \fB\-\-format\fP text|json .RS 4 قالب خروجی. پیش‌فرض text است. قالب json می‌تواند برای دریافت خروجی مناسب‌تر جهت تجزیه خودکار (parse) استفاده شود. .RE .sp \fB\-\-error\-trace\fP .RS 4 نمایش رد کامل خطا (error trace). به‌طور پیش‌فرض غیرفعال است، زیرا رد کامل معمولاً خوانایی پیام‌های خطا را کاهش می‌دهد و ممکن است همیشه اطلاعات مرتبط ارائه نکند. .RE .sp \fB\-\-ll\fP .RS 4 تخلیه فایل اسمبلی LLVM در دایرکتوری خروجی. .RE .sp \fB\-\-link\-flags\fP \fIFLAGS\fP .RS 4 ارسال پرچم‌های اضافی به پیونددهنده (linker). با اینکه می‌توانید این پرچم‌ها را در کد منبع نیز مشخص کنید، این گزینه برای ارسال مستقیم اطلاعات خاص محیط به پیونددهنده، مانند مسیرها یا نام‌های غیراستاندارد کتابخانه‌ها، مفید است. برای اطلاعات بیشتر در خصوص مشخص کردن پرچم‌های پیونددهنده در کد منبع، می‌توانید بخش «C bindings» را در مستندات وبگاه رسمی مطالعه کنید. .RE .sp \fB\-\-mcpu\fP \fICPU\fP .RS 4 مشخص کردن یک پردازنده (CPU) ویژه برای تولید کد. این گزینه پرچم \f(CR\-mcpu\fP را به LLVM ارسال می‌کند و صرفاً برای کامپایل متقاطع کاربرد دارد. برای مشاهده فهرستی از CPUهای در دسترس، هنگام ساخت هر کد منبع Crystal گزینه \f(CR\-\-mcpu\fP help را ارسال کنید. ارسال \f(CR\-\-mcpu\fP native نام CPU میزبان را ارسال می‌کند تا کارایی برای میزبان بهینه‌سازی شود. .RE .sp \fB\-\-mattr\fP \fICPU\fP .RS 4 بازنویسی یا کنترل ویژگی‌های خاص مقصد، مانند فعال یا غیرفعال بودن عملیات SIMD. مجموعه ویژگی‌های پیش‌فرض بر اساس CPU فعلی تنظیم می‌شود. این گزینه پرچم \f(CR\-mattr\fP را به LLVM ارسال می‌کند و صرفاً برای کامپایل متقاطع کاربرد دارد. برای مشاهده فهرستی از ویژگی‌های در دسترس، دستور \f(CRllvm\-as < /dev/null | llc \-march=xyz \-mattr=help\fP را اجرا کنید. .RE .sp \fB\-\-mcmodel\fP default|kernel|tiny|small|medium|large .RS 4 مشخص کردن یک مدل کد (code model) خاص برای تولید کد. این گزینه پرچم \f(CR\-\-code\-model\fP را به LLVM ارسال می‌کند. .RE .sp \fB\-\-no\-color\fP .RS 4 غیرفعال کردن خروجی رنگی. .RE .sp \fB\-\-no\-codegen\fP .RS 4 تولید کد انجام نشود، فقط فایل تجزیه (parse) شود. .RE .sp \fB\-o\fP \fIFILE\fP, \fB\-\-output\fP \fIFILE\fP .RS 4 مشخص کردن مسیر خروجی. اگر یک دایرکتوری باشد، نام فایل از نخستین فایل منبع مشتق می‌شود (پیش‌فرض: دایرکتوری فعلی). .RE .sp \fB\-\-prelude\fP .RS 4 مشخص کردن پیش‌درآمد (prelude) مورد استفاده. مورد پیش‌فرض، بازیافت حافظه (garbage collector) را مقداردهی اولیه می‌کند. همچنین می‌توانید از \f(CR\-\-prelude=empty\fP برای استفاده نکردن از هیچ پیش‌درآمدی استفاده کنید. این امر برای بررسی فرایند تولید کد برای یک فایل منبع خاص مفید است. .RE .sp \fB\-O\fP \fILEVEL\fP .RS 4 حالت بهینه‌سازی: 0 (پیش‌فرض)، 1، 2، 3. برای جزئیات به \fBOPTIMIZATIONS\fP مراجعه کنید. .RE .sp \fB\-\-release\fP .RS 4 کامپایل در حالت نهایی (release). معادل با \fB\-O3 \-\-single\-module\fP .RE .sp \fB\-s\fP, \fB\-\-stats\fP .RS 4 چاپ آمار مراحل مختلف کامپایلر برای ساخت فعلی. زمان و حافظه مصرفی برای هر فرآیند کامپایلر در خروجی درج می‌شود. .RE .sp \fB\-p\fP, \fB\-\-progress\fP .RS 4 چاپ آمار مربوط به پیشرفت ساخت فعلی. .RE .sp \fB\-t\fP, \fB\-\-time\fP .RS 4 چاپ آمار مربوط به زمان اجرا. .RE .sp \fB\-\-single\-module\fP .RS 4 تولید یک ماژول LLVM منفرد. به‌طور پیش‌فرض، برای هر نوع (type) در یک برنامه یک ماژول LLVM ایجاد می‌شود. گزینه \fB\-\-release\fP این گزینه را به‌همراه دارد. .RE .sp \fB\-\-threads\fP \fINUM\fP .RS 4 حداکثر تعداد رشته‌ها (threads) برای استفاده در تولید کد. مقدار پیش‌فرض ۸ رشته است. .RE .sp \fB\-\-target\fP \fITRIPLE\fP .RS 4 فعال‌سازی سه‌گانه مقصد (target triple)؛ در نظر گرفته شده برای استفاده در کامپایل متقاطع. برای اطلاعات بیشتر در خصوص سه‌گانه مقصد، مستندات llvm را ببینید. .RE .sp \fB\-\-verbose\fP .RS 4 نمایش دستورهای اجراشده توسط سیستم. .RE .sp \fB\-\-static\fP .RS 4 ایجاد یک فایل اجرایی پیوندیافته به‌صورت ایستا (statically linked). .RE .sp \fB\-\-stdin\-filename\fP \fIFILENAME\fP .RS 4 نام فایل منبع برای خواندن از STDIN. .RE