| CARGO-RUSTC(1) | General Commands Manual | CARGO-RUSTC(1) |
نام (NAME)
cargo-rustc - کامپایل بستهٔ جاری و ارسال گزینههای اضافی به کامپایلر
خلاصه دستور (SYNOPSIS)
cargo rustc [options] [-- args]
توضیحات (DESCRIPTION)
هدف مشخصشده برای بستهٔ جاری (یا بستهٔ مشخصشده با -p در صورت ارائه) به همراه تمام وابستگیهای آن کامپایل خواهد شد. تمام args مشخصشده به فراخوانی نهایی کامپایلر ارسال خواهند شد، نه به هیچیک از وابستگیها. توجه داشته باشید که کامپایلر همچنان آرگومانهایی مانند -L، --extern و --crate-type را بدون قید و شرط دریافت خواهد کرد، و args مشخصشده صرفاً به فراخوانی کامپایلر افزوده میشوند.
برای مستندات مربوط به پرچمهای rustc به https://doc.rust-lang.org/rustc/index.html مراجعه کنید.
این دستور مستلزم آن است که در هنگام ارائهٔ آرگومانهای اضافی، تنها یک هدف در حال کامپایل باشد. اگر بیش از یک هدف برای بستهٔ جاری در دسترس باشد، باید از فیلترهای --lib، --bin و غیره برای انتخاب هدف کامپایل شونده استفاده شود.
جهت ارسال پرچمها به تمام فرایندهای کامپایلری که توسط Cargo ایجاد میشوند، از متغیر محیطی RUSTFLAGS به نشانی https://doc.rust-lang.org/cargo/reference/environment-variables.html یا مقدار پیکربندی build.rustflags به نشانی https://doc.rust-lang.org/cargo/reference/config.html استفاده کنید.
گزینهها (OPTIONS)
انتخاب بسته (Package Selection)
بهطور پیشفرض، بستهٔ موجود در دایرکتوری کاری جاری انتخاب میشود. از پرچم -p میتوان برای انتخاب بستهای دیگر در یک فضای کاری (workspace) استفاده کرد.
-p spec, --package spec
انتخاب هدف (Target Selection)
هنگامی که هیچ گزینهٔ انتخابی برای هدف تعیین نشود، cargo rustc تمام اهداف دودویی و کتابخانهای بستهٔ انتخابشده را خواهد ساخت.
اهداف دودویی در صورتی که یک آزمون یکپارچهسازی یا بنچمارک برای ساخت انتخاب شده باشد، بهطور خودکار ساخته میشوند. این به آزمون یکپارچهسازی اجازه میدهد تا فایل دودویی را اجرا کرده و رفتار آن را بیازماید. متغیر محیطی CARGO_BIN_EXE_<name> به نشانی https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-crates هنگام ساخت و اجرای آزمون یکپارچهسازی تنظیم میشود تا بتواند با استفاده از ماکروی env به نشانی https://doc.rust-lang.org/std/macro.env.html یا تابع var به نشانی https://doc.rust-lang.org/std/env/fn.var.html مکان فایل اجرایی را پیدا کند.
ارسال پرچمهای انتخاب هدف، تنها اهداف مشخصشده را میسازد.
توجه داشته باشید که پرچمهای --bin، --example، --test و --bench همچنین از الگوهای عمومی گلوب یونیکس مانند *، ? و [] پشتیبانی میکنند. با این حال، برای جلوگیری از بسط تصادفی الگوهای گلوب توسط پوسته پیش از اینکه Cargo آنها را پردازش کند، باید در اطراف هر الگوی گلوب از نقلقول تکی یا جفتی استفاده کنید.
--lib
--bin name…
--bins
--example name…
--examples
--test name…
--tests
--bench name…
--benches
--all-targets
برای جزئیات بیشتر، مستندات ویژگیها https://doc.rust-lang.org/cargo/reference/features.html#command-line-feature-options را ببینید.
-F features, --features features
--all-features
--no-default-features
گزینههای کامپایل (Compilation Options)
--target triple
مقادیر ممکن:
این مورد را میتوان با مقدار پیکربندی build.target https://doc.rust-lang.org/cargo/reference/config.html نیز مشخص کرد.
توجه داشته باشید که تعیین این پرچم باعث میشود Cargo در حالت متفاوتی اجرا شود که در آن مصنوعات مقصد در یک دایرکتوری جداگانه قرار میگیرند. برای جزئیات بیشتر، مستندات build cache https://doc.rust-lang.org/cargo/reference/build-cache.html را ببینید.
-r, --release
--profile name
زیرفرمان rustc با نمایههای نامگذاریشده زیر با رفتارهای ویژهای برخورد خواهد کرد:
برای جزئیات بیشتر درباره نمایهها، مرجع https://doc.rust-lang.org/cargo/reference/profiles.html را ببینید.
--timings
در پایان ساخت، فایلی با نام cargo-timing.html در دایرکتوری target/cargo-timings نوشته خواهد شد. در صورتی که بخواهید یک اجرای قبلی را بررسی کنید، گزارش دیگری با یک برچسب زمانی در نام فایل آن نیز نوشته میشود. این گزارشها صرفاً برای مطالعه انسان مناسب هستند و دادههای زمانبندی خوانا برای ماشین را ارائه نمیدهند.
--crate-type crate-type
اگر مانیفست شامل یک فهرست باشد و --crate-type ارائه شود، مقدار آرگومان خط فرمان بر آنچه در مانیفست است برتری خواهد داشت.
این پرچم تنها هنگام ساخت یک مقصد کتابخانهای lib یا example کار میکند.
گزینههای خروجی (Output Options)
--target-dir directory
-v, --verbose
-q, --quiet
--color when
همچنین میتواند با مقدار پیکربندی term.color https://doc.rust-lang.org/cargo/reference/config.html مشخص شود.
--message-format fmt
گزینههای مانیفست (Manifest Options)
--manifest-path path
--ignore-rust-version
--locked
میتواند در محیطهایی که ساختهای قطعی (deterministic) مورد نیاز است، مانند خطوط لوله CI، استفاده شود.
--offline
توجه داشته باشید که این ممکن است به تحلیل متفاوتی از وابستگیها نسبت به حالت برخط (آنلاین) منجر شود. Cargo خود را به کریتهایی (crates) که بهصورت محلی بارگیری شدهاند محدود میکند، حتی اگر طبق نسخهٔ محلی نمایه (index)، نسخهٔ جدیدتری موجود باشد. برای بارگیری وابستگیها پیش از رفتن به حالت آفلاین، دستور cargo-fetch(1) را ببینید.
همچنین میتواند با مقدار پیکربندی net.offline https://doc.rust-lang.org/cargo/reference/config.html مشخص شود.
--frozen
+toolchain
--config KEY=VALUE یا PATH
-C PATH
این گزینه تنها روی کانال nightly https://doc.rust-lang.org/book/appendix-07-nightly-rust.html در دسترس است و برای فعالسازی به پرچم -Z unstable-options نیاز دارد (به #10098 https://github.com/rust-lang/cargo/issues/10098 مراجعه کنید).
-h, --help
-Z flag
گزینههای متفرقه (Miscellaneous Options)
-j N, --jobs N
--keep-going
برای نمونه، اگر بسته کنونی به وابستگیهای fails و works وابسته باشد که ساخت یکی از آنها با شکست مواجه میشود، cargo rustc -j1 ممکن است موردی را که با موفقیت ساخته میشود بسازد یا نسازد (بسته به اینکه Cargo ابتدا ساخت کدامیک را برای اجرا انتخاب کرده باشد)، در حالی که cargo rustc -j1 --keep-going قطعاً هر دو ساخت را اجرا خواهد کرد، حتی اگر موردی که اول اجرا میشود شکست بخورد.
--future-incompat-report
به cargo-report(1) مراجعه کنید.
محیط (ENVIRONMENT)
برای جزئیات درباره متغیرهای محیطی که Cargo میخواند، به مرجع https://doc.rust-lang.org/cargo/reference/environment-variables.html مراجعه کنید.
وضعیت خروج (EXIT STATUS)
مثالها (EXAMPLES)
cargo rustc --lib -- -D unsafe-code
cargo rustc --lib -- -Z print-type-sizes
cargo rustc --lib --crate-type lib,cdylib