DragonFly On-Line Manual Pages

Search: Section:  


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)

Search: Section: