Command-line arguments
Here's a list of command-line arguments to rustc and what they do.
-h/--help: get help
This flag will print out help information for rustc.
--cfg: configure the compilation environment
This flag can turn on or off various #[cfg] settings.
The value can either be a single identifier or two identifiers separated by =.
For examples, --cfg 'verbose' or --cfg 'feature="serde"'. These correspond
to #[cfg(verbose)] and #[cfg(feature = "serde")] respectively.
-L: add a directory to the library search path
When looking for external crates, a directory passed to this flag will be searched.
-l: link the generated crate to a native library
This flag allows you to specify linking to a specific native library when building a crate.
--crate-type: a list of types of crates for the compiler to emit
This instructs rustc on which crate type to build.
--crate-name: specify the name of the crate being built
This informs rustc of the name of your crate.
--emit: emit output other than a crate
Instead of producing a crate, this flag can print out things like the assembly or LLVM-IR.
--print: print compiler information
This flag prints out various information about the compiler.
-g: include debug information
A synonym for -C debuginfo=2, for more see here.
-O: optimize your code
A synonym for -C opt-level=2, for more see here.
-o: filename of the output
This flag controls the output filename.
--out-dir: directory to write the output in
The outputted crate will be written to this directory.
--explain: provide a detailed explanation of an error message
Each error of rustc's comes with an error code; this will print
out a longer explanation of a given error.
--test: build a test harness
When compiling this crate, rustc will ignore your main function
and instead produce a test harness.
--target: select a target triple to build
This controls which target to produce.
-W: set lint warnings
This flag will set which lints should be set to the warn level.
-A: set lint allowed
This flag will set which lints should be set to the allow level.
-D: set lint denied
This flag will set which lints should be set to the deny level.
-F: set lint forbidden
This flag will set which lints should be set to the forbid level.
--cap-lints: set the most restrictive lint level
This flag lets you 'cap' lints, for more, see here.
-C/--codegen: code generation options
This flag will allow you to set codegen options.
-V/--version: print a version
This flag will print out rustc's version.
-v/--verbose: use verbose output
This flag, when combined with other flags, makes them produce extra output.
--extern: specify where an external library is located
This flag allows you to pass the name and location of an external crate that will be linked into the crate you're buildling.
--sysroot: Override the system root
The "sysroot" is where rustc looks for the crates that come with the Rust
distribution; this flag allows that to be overridden.
--error-format: control how errors are produced
This flag lets you control the format of errors.
--color: configure coloring of output
This flag lets you control color settings of the output.