DragonFly On-Line Manual Pages
RUSTC(1) User Commands RUSTC(1)
NAME
rustc - The Rust compiler
SYNOPSIS
rustc [OPTIONS] INPUT
DESCRIPTION
This program is a compiler for the Rust language, available at
<https://www.rust-lang.org>.
OPTIONS
-h, --help
Display the help message.
--cfg SPEC
Configure the compilation environment.
-L [KIND=]PATH
Add a directory to the library search path. The optional KIND
can be one of:
dependency
only lookup transitive dependencies here
crate only lookup local `extern crate` directives here
native only lookup native libraries here
framework
only look for OSX frameworks here
all look for anything here (the default)
-l [KIND=]NAME
Link the generated crate(s) to the specified native library
NAME. The optional KIND can be one of static, dylib, or
framework. If omitted, dylib is assumed.
--crate-type [bin|lib|rlib|dylib|staticlib]
Comma separated list of types of crates for the compiler to
emit.
--crate-name NAME
Specify the name of the crate being built.
--emit [asm|llvm-bc|llvm-ir|obj|link|dep-info]
Configure the output that rustc will produce.
--print [crate-name|file-names|sysroot]
Comma separated list of compiler information to print on stdout.
-g Equivalent to -C debuginfo=2.
-O Equivalent to -C opt-level=2.
-o FILENAME
Write output to FILENAME. Ignored if multiple --emit outputs
are specified.
--out-dir DIR
Write output to compiler-chosen filename in DIR. Ignored if -o
is specified. Defaults to the current directory.
--explain OPT
Provide a detailed explanation of an error message.
--test Build a test harness.
--target TRIPLE
Target triple cpu-manufacturer-kernel[-os] to compile for (see
chapter 3.4 of <http://www.sourceware.org/autobook/> for
details).
-W help
Print 'lint' options and default settings.
-W OPT, --warn OPT
Set lint warnings.
-A OPT, --allow OPT
Set lint allowed.
-D OPT, --deny OPT
Set lint denied.
-F OPT, --forbid OPT
Set lint forbidden.
-C FLAG[=VAL], --codegen FLAG[=VAL]
Set a codegen-related flag to the value specified. Use -C help
to print available flags. See CODEGEN OPTIONS below.
-V, --version
Print version info and exit.
-v, --verbose
Use verbose output.
--extern NAME=PATH
Specify where an external rust library is located.
--sysroot PATH
Override the system root.
-Z FLAG
Set internal debugging options. Use -Z help to print available
options.
--color auto|always|never
Configure coloring of output:
auto colorize, if output goes to a tty (default);
always always colorize output;
never never colorize output.
CODEGEN OPTIONS
ar=/path/to/ar
Path to the archive utility to use when assembling archives.
linker=/path/to/cc
Path to the linker utility to use when linking libraries,
executables, and objects.
link-args='-flag1 -flag2'
A space-separated list of extra arguments to pass to the linker
when the linker is invoked.
lto Perform LLVM link-time optimizations.
target-cpu=help
Selects a target processor. If the value is 'help', then a list
of available CPUs is printed.
target-feature='+feature1,-feature2'
A comma-separated list of features to enable or disable for the
target. A preceding '+' enables a feature while a preceding '-'
disables it. Available features can be discovered through llc
-mcpu=help.
passes=val
A space-separated list of extra LLVM passes to run. A value of
'list' will cause rustc to print all known passes and exit. The
passes specified are appended at the end of the normal pass
manager.
llvm-args='-arg1 -arg2'
A space-separated list of arguments to pass through to LLVM.
save-temps
If specified, the compiler will save more files (.bc, .o,
.no-opt.bc) generated throughout compilation in the output
directory.
rpath If specified, then the rpath value for dynamic libraries will be
set in either dynamic library or executable outputs.
no-prepopulate-passes
Suppresses pre-population of the LLVM pass manager that is run
over the module.
no-vectorize-loops
Suppresses running the loop vectorization LLVM pass, regardless
of optimization level.
no-vectorize-slp
Suppresses running the LLVM SLP vectorization pass, regardless
of optimization level.
soft-float
Generates software floating point library calls instead of
hardware instructions.
prefer-dynamic
Prefers dynamic linking to static linking.
no-integrated-as
Force usage of an external assembler rather than LLVM's
integrated one.
no-redzone
Disable the use of the redzone.
relocation-model=[pic,static,dynamic-no-pic]
The relocation model to use. (Default: pic)
code-model=[small,kernel,medium,large]
Choose the code model to use.
metadata=val
Metadata to mangle symbol names with.
extra-filename=val
Extra data to put in each output filename.
codegen-units=n
Divide crate into n units to optimize in parallel.
remark=val
Print remarks for these optimization passes (space separated, or
"all").
no-stack-check
Disable checks for stack exhaustion (a memory-safety hazard!).
debuginfo=val
Debug info emission level:
0 no debug info;
1 line-tables only (for stacktraces and breakpoints);
2 full debug info with variable and type information.
opt-level=VAL
Optimize with possible levels 0-3
ENVIRONMENT
Some of these affect the output of the compiler, while others affect
programs which link to the standard library.
RUST_TEST_THREADS
The test framework Rust provides executes tests in parallel.
This variable sets the maximum number of threads used for this
purpose.
RUST_TEST_NOCAPTURE
A synonym for the --nocapture flag.
RUST_MIN_STACK
Sets the minimum stack size for new threads.
RUST_BACKTRACE
If set, produces a backtrace in the output of a program which
panics.
EXAMPLES
To build an executable from a source file with a main function:
$ rustc -o hello hello.rs
To build a library from a source file:
$ rustc --crate-type=lib hello-lib.rs
To build either with a crate (.rs) file:
$ rustc hello.rs
To build an executable with debug info:
$ rustc -g -o hello hello.rs
SEE ALSO
rustdoc(1)
BUGS
See <https://github.com/rust-lang/rust/issues> for issues.
AUTHOR
See AUTHORS.txt in the Rust source distribution.
COPYRIGHT
This work is dual-licensed under Apache 2.0 and MIT terms. See
COPYRIGHT file in the rust source distribution.
rustc 1.2.0 August 2015 RUSTC(1)