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.