| CARGO-BUILD(1) | General Commands Manual | CARGO-BUILD(1) |
نام (NAME)
cargo-build - کامپایل بسته جاری
خلاصه دستور (SYNOPSIS)
cargo build [گزینهها]
توضیحات (DESCRIPTION)
کامپایل بستههای محلی و تمام وابستگیهای آنها.
گزینهها (OPTIONS)
انتخاب بسته (Package Selection)
بهطور پیشفرض، زمانی که هیچ گزینهٔ انتخابی برای بسته مشخص نشده باشد، بستههای انتخابشده به فایل مانیفستِ انتخابشده بستگی دارند (اگر --manifest-path داده نشده باشد، بر اساس دایرکتوری کاری فعلی تعیین میشود). اگر مانیفست ریشهٔ یک فضای کاری (workspace) باشد، اعضای پیشفرض فضای کاری انتخاب میشوند، در غیر این صورت تنها بستهای که توسط مانیفست تعریف شده است انتخاب خواهد شد.
اعضای پیشفرض یک فضای کاری را میتوان بهصراحت با کلید workspace.default-members در مانیفست ریشه تنظیم کرد. اگر این مقدار تنظیم نشده باشد، یک فضای کاری مجازی شامل تمام اعضای فضای کاری خواهد بود (معادل ارسال --workspace)، و یک فضای کاری غیرمجازی تنها شامل خودِ crate ریشه خواهد بود.
-p spec…, --package spec…
--workspace
--all
--exclude SPEC…
انتخاب هدف (Target Selection)
زمانی که هیچ گزینهای برای انتخاب هدف ارائه نشده باشد، cargo build تمام هدفهای دودویی (binary) و کتابخانهایِ بستههای انتخابشده را میسازد. در صورتی که فایلهای دودویی دارای required-features باشند که ناموجود است، نادیده گرفته میشوند.
اگر یک آزمون یکپارچهسازی یا بنچمارک برای ساخت انتخاب شده باشد، هدفهای دودویی بهطور خودکار ساخته میشوند. این کار به آزمون یکپارچهسازی اجازه میدهد تا فایل دودویی را برای سنجش و آزمایش رفتار آن اجرا کند. متغیر محیطی 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 نیز از الگوهای عمومی glob در یونیکس مانند *، ? و [] پشتیبانی میکنند. با این حال، برای جلوگیری از بسط تصادفی الگوهای glob توسط پوسته پیش از پردازش آنها توسط Cargo، باید در اطراف هر الگوی glob از نقلقولهای تکی یا جفتی استفاده کنید.
--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
--timings
در پایان ساخت، یک فایل cargo-timing.html در دایرکتوری target/cargo-timings نوشته خواهد شد. در صورتی که بخواهید یک اجرای قبلی را بررسی کنید، یک گزارش اضافی همراه با برچسب زمان در نام فایل آن نیز نوشته میشود. این گزارشها صرفاً برای استفادهٔ انسان مناسب هستند و دادههای زمانبندی ماشینخوان ارائه نمیدهند.
گزینههای خروجی (Output Options)
--target-dir directory
--artifact-dir directory
این گزینه ناپایدار است و فقط در کانال nightly https://doc.rust-lang.org/book/appendix-07-nightly-rust.html در دسترس است و برای فعالسازی به پرچم -Z unstable-options نیاز دارد. برای اطلاعات بیشتر https://github.com/rust-lang/cargo/issues/6790 را ببینید.
گزینههای نمایش (Display Options)
-v, --verbose
-q, --quiet
--color when
همچنین میتواند با مقدار پیکربندی term.color https://doc.rust-lang.org/cargo/reference/config.html مشخص شود.
--message-format fmt
--manifest-path path
--ignore-rust-version
--locked
این گزینه میتواند در محیطهایی که ساختهای قطعی و تکرارپذیر مورد نیاز است، مانند خطوط لولهٔ CI، استفاده شود.
--offline
توجه داشته باشید که این کار ممکن است منجر به حل وابستگی متفاوتی نسبت به حالت برخط شود. Cargo خود را به crateهایی که بهصورت محلی بارگیری شدهاند محدود میکند، حتی اگر طبق نسخهٔ محلی نمایه، نسخهٔ جدیدتری وجود داشته باشد. برای بارگیری وابستگیها قبل از آفلاین شدن، دستور cargo-fetch(1) را ببینید.
همچنین میتواند با مقدار پیکربندی net.offline در https://doc.rust-lang.org/cargo/reference/config.html تعیین شود.
--frozen
گزینههای عمومی (Common Options)
+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 build -j1 بسته به اینکه Cargo کدام یک را ابتدا برای اجرا انتخاب کند ممکن است بستهای را که با موفقیت ساخته میشود بسازد یا نسازد؛ در حالی که دستور cargo build -j1 --keep-going قطعاً هر دو ساخت را اجرا خواهد کرد، حتی اگر موردی که اول اجرا شده با شکست مواجه شود.
--future-incompat-report
به cargo-report(1) مراجعه کنید برای جزئیات دربارهٔ متغیرهای محیطی که Cargo میخواند، مرجع https://doc.rust-lang.org/cargo/reference/environment-variables.html را ببینید.
وضعیت خروج (EXIT STATUS)
مثالها (EXAMPLES)
cargo build
cargo build --release