|CARGO-RUSTC(1)||General Commands Manual||CARGO-RUSTC(1)|
See https://doc.rust-lang.org/rustc/index.html for documentation on rustc flags.
This command requires that only one target is being compiled when additional arguments are provided. If more than one target is available for the current package the filters of --lib, --bin, etc, must be used to select which target is compiled.
To pass flags to all compiler processes spawned by Cargo, use the RUSTFLAGS environment variable https://doc.rust-lang.org/cargo/reference/environment-variables.html or the build.rustflags config value https://doc.rust-lang.org/cargo/reference/config.html.
-p spec, --package spec
Passing target selection flags will build only the specified targets.
Note that --bin, --example, --test and --bench flags also support common Unix glob patterns like *, ? and . However, to avoid your shell accidentally expanding glob patterns before Cargo handles them, you must use single quotes or double quotes around each glob pattern.
See the features documentation https://doc.rust-lang.org/cargo/reference/features.html#command-line-feature-options for more details.
This may also be specified with the build.target config value https://doc.rust-lang.org/cargo/reference/config.html.
Note that specifying this flag makes Cargo run in a different mode where the target artifacts are placed in a separate directory. See the build cache https://doc.rust-lang.org/cargo/guide/build-cache.html documentation for more details.
May also be specified with the term.color config value https://doc.rust-lang.org/cargo/reference/config.html.
These may be used in environments where you want to assert that the Cargo.lock file is up-to-date (such as a CI build) or want to avoid network access.
Beware that this may result in different dependency resolution than online mode. Cargo will restrict itself to crates that are downloaded locally, even if there might be a newer version as indicated in the local copy of the index. See the cargo-fetch(1) command to download dependencies before going offline.
May also be specified with the net.offline config value https://doc.rust-lang.org/cargo/reference/config.html.
Profile selection depends on the target and crate being built. By default the dev or test profiles are used. If the --release flag is given, then the release or bench profiles are used.
|Target||Default Profile||--release Profile|
|lib, bin, example||dev||release|
|test, bench, or any target in "test" or "bench" mode||test||bench|
Dependencies use the dev/release profiles.
cargo rustc --lib -- -D unsafe-code
cargo rustc --lib -- -Z print-type-sizes