.TH RUSTC "1" "April 2019" "rustc 1.98.1 (48a229cea 2026-09-01)" "User Commands" .SH "نام (NAME)" rustc \- کامپایلر زبان Rust .SH "خلاصه دستور (SYNOPSIS)" .B rustc [\fIOPTIONS\fR] \fIINPUT\fR .SH "توضیحات (DESCRIPTION)" این برنامه کامپایلری برای زبان Rust است که در نشانی https://www.rust\-lang.org در دسترس است. .SH "گزینه‌ها (OPTIONS)" .TP \fB\-h\fR, \fB\-\-help\fR نمایش پیام راهنما. .TP \fB\-\-cfg\fR \fISPEC\fR پیکربندی محیط کامپایل. .TP \fB\-L\fR [\fIKIND\fR=]\fIPATH\fR افزودن یک دایرکتوری به مسیر جستجوی کتابخانه‌ها. مقدار اختیاری \fIKIND\fR می‌تواند یکی از موارد زیر باشد: .RS .TP \fBdependency\fR تنها وابستگی‌های متعدی (transitive) در اینجا جستجو شوند .TP .B crate تنها دستورالعمل‌های محلی `extern crate` در اینجا جستجو شوند .TP .B native تنها کتابخانه‌های محلی (native) در اینجا جستجو شوند .TP .B framework تنها فریم‌ورک‌های OSX در اینجا جستجو شوند .TP .B all همه موارد در اینجا جستجو شوند (پیش‌فرض) .RE .TP \fB\-l\fR [\fIKIND\fR=]\fINAME\fR پیوند دادن crate(های) تولیدشده به کتابخانه مشخص‌شده در \fINAME\fR. مقدار اختیاری \fIKIND\fR می‌تواند یکی از مقادیر \fIstatic\fR، \fIdylib\fR یا \fIframework\fR باشد. در صورت مشخص نشدن، \fIdylib\fR در نظر گرفته می‌شود. .TP \fB\-\-crate\-type\fR [bin|lib|rlib|dylib|cdylib|staticlib|proc\-macro] فهرستی جداشده با کاما از انواع crateها که کامپایلر باید تولید کند. .TP \fB\-\-crate\-name\fR \fINAME\fR مشخص کردن نام crate در حال ساخت. .TP \fB\-\-emit\fR [asm|llvm\-bc|llvm\-ir|obj|metadata|link|dep\-info|mir][=\fIPATH\fR] پیکربندی خروجی‌ای که \fBrustc\fR تولید خواهد کرد. هر خروجی می‌تواند یک مسیر \fIPATH\fR اختیاری و صریح نیز برای آن نوع خروجی خاص داشته باشد. این مسیر بر گزینه \fB\-o\fR اولویت دارد. .TP \fB\-\-print\fR [crate\-name|\:file\-names|\:sysroot|\:target\-libdir|\:cfg|\:target\-list|\:target\-cpus|\:target\-features|\:relocation\-models|\:code\-models|\:tls\-models|\:target\-spec\-json|\:native\-static\-libs|\:stack\-protector\-strategies|\:link\-args] فهرستی جداشده با کاما از اطلاعات کامپایلر جهت چاپ در stdout. .TP \fB\-g\fR معادل با \fI\-C\ debuginfo=2\fR. .TP \fB\-O\fR معادل با \fI\-C\ opt\-level=2\fR. .TP \fB\-o\fR \fIFILENAME\fR نوشتن خروجی در \fIFILENAME\fR. در صورتی که چندین خروجی \fI\-\-emit\fR مشخص شده باشند که مسیر صریحی ندارند، نادیده گرفته می‌شود. .TP \fB\-\-out\-dir\fR \fIDIR\fR نوشتن خروجی در \fIDIR\fR با نام فایلی که کامپایلر انتخاب می‌کند. در صورت مشخص شدن \fI\-o\fR نادیده گرفته می‌شود. پیش‌فرض، دایرکتوری جاری است. .TP \fB\-\-explain\fR \fIOPT\fR ارائه توضیحات دقیق پیرامون یک پیام خطا. .TP \fB\-\-test\fR ساخت مهار آزمون (test harness). .TP \fB\-\-target\fR \fITARGET\fR تاپل هدف (target tuple) که کد برای آن کامپایل می‌شود. این گزینه به طور پیش‌فرض تاپل هدف میزبان است. تاپل هدف قالب کلی \-\-\- را دارد که در آن: .RS .TP .B شامل x86، arm، thumb، mips و غیره. .TP .B برای مثال در ARM شامل: v5، v6m، v7a، v7m و غیره. .TP .B شامل pc، apple، nvidia، ibm و غیره. .TP .B شامل none، linux، win32، darwin، cuda و غیره. .TP .B شامل eabi، gnu، android، macho، elf و غیره. .RE .TP \fB\-W help\fR چاپ گزینه‌های 'lint' و تنظیمات پیش‌فرض. .TP \fB\-W\fR \fIOPT\fR, \fB\-\-warn\fR \fIOPT\fR تنظیم هشدارهای lint. .TP \fB\-A\fR \fIOPT\fR, \fB\-\-allow\fR \fIOPT\fR مجاز کردن موارد lint. .TP \fB\-D\fR \fIOPT\fR, \fB\-\-deny\fR \fIOPT\fR رد کردن موارد lint (به عنوان خطا). .TP \fB\-F\fR \fIOPT\fR, \fB\-\-forbid\fR \fIOPT\fR قدغن کردن موارد lint (غیرقابل لغو). .TP \fB\-C\fR \fIFLAG\fR[=\fIVAL\fR], \fB\-\-codegen\fR \fIFLAG\fR[=\fIVAL\fR] تنظیم یک پرچم مرتبط با تولید کد (codegen) به مقدار مشخص‌شده. برای چاپ پرچم‌های موجود از \fI\-C help\fR استفاده کنید. بخش CODEGEN OPTIONS را در ادامه ببینید. .TP \fB\-V\fR, \fB\-\-version\fR چاپ اطلاعات نسخه و خروج. .TP \fB\-v\fR, \fB\-\-verbose\fR استفاده از خروجی پرگو (verbose). .TP \fB\-\-remap\-path\-prefix\fR \fIfrom\fR=\fIto\fR بازنگاشت پیشوندهای مسیر مبدا در تمام خروجی‌ها، شامل خطایابی‌های کامپایلر، اطلاعات اشکال‌زدایی، گسترش ماکروها و غیره. پارامتر \fIfrom\fR=\fIto\fR از راست به چپ بررسی می‌شود، بنابراین \fIfrom\fR می‌تواند شامل '=' باشد، اما \fIto\fR نمی‌تواند. این گزینه برای نرمال‌سازی نتایج ساخت مفید است، به عنوان مثال با حذف دایرکتوری جاری از نام مسیرهای ثبت‌شده در فایل‌های شیء (object). جایگزینی صرفاً متنی است و نحو نام مسیر سیستم جاری در نظر گرفته نمی‌شود. برای مثال \fI\-\-remap\-path\-prefix foo=bar\fR با \fBfoo/lib.rs\fR مطابقت دارد اما با \fB./foo/lib.rs\fR تطابق نخواهد داشت. .TP \fB\-\-extern\fR \fINAME\fR=\fIPATH\fR مشخص کردن محل یک کتابخانه خارجی Rust. این موارد باید با اعلان‌های \fIextern\fR در کد منبع crate مطابقت داشته باشند. .TP \fB\-\-sysroot\fR \fIPATH\fR بازنویسی ریشه سیستم (system root). .TP \fB\-Z\fR \fIFLAG\fR تنظیم گزینه‌های ناپایدار (unstable) یا دائماً ناپایدار (perma-unstable). برای چاپ گزینه‌های موجود از \fI\-Z help\fR استفاده کنید. .TP \fB\-\-color\fR auto|always|never پیکربندی رنگ‌آمیزی خروجی: .RS .TP .B auto رنگی کردن خروجی در صورتی که به یک tty ارسال شود (پیش‌فرض)؛ .TP .B always رنگی کردن همیشگی خروجی؛ .TP .B never عدم رنگ‌آمیزی خروجی در هیچ حالتی. .RE.SH "گزینه‌های تولید کد (CODEGEN OPTIONS)" .TP \fBlinker\fR=\fI/path/to/cc\fR مسیر ابزار پیونددهنده (linker) برای استفاده هنگام پیوند دادن کتابخانه‌ها، فایل‌های اجرایی، و فایل‌های شیء (objects). .TP \fBlink\-args\fR='\fI\-flag1 \-flag2\fR' فهرستی از آرگومان‌های اضافی جداشده با فاصله برای ارسال به پیونددهنده هنگام فراخوانی آن. .TP \fBlto\fR انجام بهینه‌سازی‌های زمان پیوند (LTO) با LLVM. .TP \fBtarget\-cpu\fR=\fIhelp\fR پردازندهٔ مقصد را انتخاب می‌کند. اگر مقدار برابر با 'help' باشد، فهرستی از پردازنده‌های در دسترس چاپ می‌شود. .TP \fBtarget\-feature\fR='\fI+feature1\fR,\fI\-feature2\fR' فهرستی از ویژگی‌های جداشده با کاما برای فعال یا غیرفعال کردن در مقصد. علامت '+' در ابتدا یک ویژگی را فعال و علامت '\-' آن را غیرفعال می‌کند. ویژگی‌های موجود را می‌توان با دستور \fIllc -mcpu=help\fR پیدا کرد. .TP \fBpasses\fR=\fIval\fR فهرستی از گذرهای (passes) اضافی LLVM جداشده با فاصله برای اجرا. مقدار 'list' باعث می‌شود \fBrustc\fR تمام گذرهای شناخته‌شده را چاپ کرده و خارج شود. گذرهای مشخص‌شده به انتهای مدیر گذرهای عادی اضافه می‌شوند. .TP \fBllvm\-args\fR='\fI\-arg1\fR \fI\-arg2\fR' فهرستی از آرگومان‌های جداشده با فاصله برای ارسال مستقیم به LLVM. .TP \fBsave\-temps\fR در صورت تعیین، کامپایلر فایل‌های بیشتری (.bc، .o، .no\-opt.bc) را که در طول کامپایل تولید می‌شوند در دایرکتوری خروجی ذخیره خواهد کرد. .TP \fBrpath\fR در صورت تعیین، مقدار rpath برای کتابخانه‌های پویا در خروجی‌های کتابخانهٔ پویا یا فایل اجرایی تنظیم می‌شود. .TP \fBno\-prepopulate\-passes\fR از مقداردهی اولیه و پیش‌بارگذاری مدیر گذرهای LLVM که روی ماژول اجرا می‌شود، جلوگیری می‌کند. .TP \fBno\-vectorize\-loops\fR صرف‌نظر از سطح بهینه‌سازی، اجرای گذر برداری‌سازی حلقه‌های LLVM را غیرفعال می‌کند. .TP \fBno\-vectorize\-slp\fR صرف‌نظر از سطح بهینه‌سازی، اجرای گذر برداری‌سازی SLP در LLVM را غیرفعال می‌کند. .TP \fBsoft\-float\fR به جای دستورالعمل‌های سخت‌افزاری، فراخوانی‌های کتابخانه‌ای ممیز شناور نرم‌افزاری تولید می‌کند. .TP \fBprefer\-dynamic\fR پیوند پویا را به پیوند ایستا ترجیح می‌دهد. .TP \fBno\-integrated\-as\fR استفاده از یک اسمبلر خارجی به جای اسمبلر یکپارچهٔ داخلی LLVM را اجباری می‌کند. .TP \fBno\-redzone\fR استفاده از ناحیهٔ محافظت‌شدهٔ پشته (redzone) را غیرفعال می‌کند. .TP \fBrelocation\-model\fR=[pic,static,dynamic\-no\-pic] مدل بازنشانی (relocation) مورد استفاده. (پیش‌فرض: \fIpic\fR) .TP \fBcode\-model\fR=[small,kernel,medium,large] مدل کد مورد استفاده را انتخاب می‌کند. .TP \fBmetadata\fR=\fIval\fR متاداده برای درهم‌ریزی نام نمادها (symbol name mangling). .TP \fBextra\-filename\fR=\fIval\fR داده‌های اضافی برای درج در نام هر فایل خروجی. .TP \fBcodegen\-units\fR=\fIn\fR کریت (crate) را به \fIn\fR واحد تقسیم می‌کند تا به صورت موازی بهینه‌سازی شوند. .TP \fBremark\fR=\fIval\fR چاپ ملاحظات و گزارش‌ها برای این گذرهای بهینه‌سازی (جداشده با فاصله، یا "all"). .TP \fBno\-stack\-check\fR بررسی‌های مربوط به سرریز پشته را غیرفعال می‌کند (یک مخاطرهٔ جدی برای ایمنی حافظه!). .TP \fBdebuginfo\fR=\fIval\fR سطح انتشار اطلاعات اشکال‌زدایی: .RS .TP .B 0 بدون اطلاعات اشکال‌زدایی؛ .TP .B 1 فقط جدول خطوط کد (برای ردگیری پشته و نقاط توقف)؛ .TP .B 2 اطلاعات اشکال‌زدایی کامل همراه با اطلاعات متغیرها و نوع‌ها. .RE .TP \fBopt\-level\fR=\fIVAL\fR بهینه‌سازی با سطوح ممکن 0\[en]3، s (بهینه‌سازی برای اندازه)، یا z (برای کمترین اندازهٔ ممکن).SH "محیط (ENVIRONMENT)" برخی از این متغیرها تنها بر برنامه‌های بستر آزمون (ایجادشده از طریق rustc --test) اثر می‌گذارند؛ سایر متغیرها بر تمام برنامه‌هایی که با کتابخانه استاندارد Rust پیوند می‌خورند تأثیرگذارند. .TP \fBRUST_TEST_THREADS\fR چارچوب آزمونی که Rust ارائه می‌دهد، آزمون‌ها را به‌صورت موازی اجرا می‌کند. این متغیر حداکثر تعداد رشته‌های مورد استفاده برای این منظور را مشخص می‌کند. این تنظیم توسط گزینه \-\-test\-threads بازنویسی می‌شود. .TP \fBRUST_TEST_NOCAPTURE\fR اگر روی مقداری غیر از "0" تنظیم شود، مترادفی برای پرچم \-\-nocapture است. .TP \fBRUST_MIN_STACK\fR حداقل اندازه پشته (stack) را برای رشته‌های جدید تعیین می‌کند. .TP \fBRUST_BACKTRACE\fR اگر روی مقداری غیر از "0" تنظیم شود، در خروجی برنامه‌ای که دچار panic می‌شود یک backtrace تولید می‌کند. .SH "مثال‌ها (EXAMPLES)" برای ساخت یک فایل اجرایی از یک فایل منبع با تابع main: $ rustc \-o hello hello.rs برای ساخت یک کتابخانه از یک فایل منبع: $ rustc \-\-crate\-type=lib hello\-lib.rs برای ساخت هر یک با یک فایل crate (.rs): $ rustc hello.rs برای ساخت یک فایل اجرایی همراه با اطلاعات اشکال‌زدایی: $ rustc \-g \-o hello hello.rs .SH "همچنین ببینید (SEE ALSO)" .BR rustdoc (1) .SH "گزارش باگ‌ها (BUGS)" برای مشاهده و گزارش باگ‌ها به https://github.com/rust\-lang/rust/issues مراجعه کنید. .SH "نویسندگان (AUTHORS)" صفحه https://github.com/rust\-lang/rust/graphs/contributors را ببینید یا از دستور `git log --all --format='%cN <%cE>' | sort -u` در توزیع منبع rust استفاده کنید. .SH "کپی‌رایت و تکثیر (COPYRIGHT)" این اثر دارای مجوز دوگانه تحت شرایط Apache\ 2.0 و MIT است. فایل \fICOPYRIGHT\fR را در توزیع منبع rust مشاهده کنید.