.TH RUSTC "1" "March 2014" "rustc 0.13.0" "User Commands" .SH NAME rustc \- The Rust compiler .SH SYNOPSIS .B rustc [\fIOPTIONS\fR] \fIINPUT\fR .SH DESCRIPTION This program is a compiler for the Rust language, available at <\fBhttps://www.rust-lang.org\fR>. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR Display the help message .TP \fB\-\-cfg\fR SPEC Configure the compilation environment .TP \fB\-L\fR PATH Add a directory to the library search path .TP \fB\-l\fR NAME[:KIND] 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. .TP \fB\-\-crate-type\fR [bin|lib|rlib|dylib|staticlib] Comma separated list of types of crates for the compiler to emit .TP \fB\-\-crate-name NAME\fR Specify the name of the crate being built .TP \fB\-\-emit\fR [asm|llvm-bc|llvm-ir|obj|link|dep-info] Configure the output that rustc will produce .TP \fB\-\-print\fR [crate-name|file-names|sysroot] Comma separated list of compiler information to print on stdout .TP \fB\-g\fR Equivalent to \fI\-C\fR debuginfo=2 .TP \fB\-O\fR Equivalent to \fI\-C\fR opt-level=2 .TP \fB\-o\fR FILENAME Write output to <filename>. Ignored if multiple \fI\-\-emit\fR outputs are specified. .TP \fB\-\-out\-dir\fR DIR Write output to compiler-chosen filename in <dir>. Ignored if \fI\-o\fR is specified. Defaults to the current directory. .TP \fB\-\-explain\fR OPT Provide a detailed explanation of an error message .TP \fB\-\-test\fR Build a test harness .TP \fB\-\-target\fR TRIPLE Target triple cpu-manufacturer-kernel[-os] to compile for (see chapter 3.4 of http://www.sourceware.org/autobook/ for details) .TP \fB\-W\fR help Print 'lint' options and default settings .TP \fB\-W\fR OPT, \fB\-\-warn\fR OPT Set lint warnings .TP \fB\-A\fR OPT, \fB\-\-allow\fR OPT Set lint allowed .TP \fB\-D\fR OPT, \fB\-\-deny\fR OPT Set lint denied .TP \fB\-F\fR OPT, \fB\-\-forbid\fR OPT Set lint forbidden .TP \fB\-C\fR FLAG[=VAL], \fB\-\-codegen\fR FLAG[=VAL] Set a codegen-related flag to the value specified. Use "-C help" to print available flags. See CODEGEN OPTIONS below .TP \fB\-V\fR, \fB\-\-version\fR Print version info and exit .TP \fB\-v\fR, \fB\-\-verbose\fR Use verbose output .TP \fB\-\-extern\fR NAME=PATH Specify where an external rust library is located .TP \fB\-\-sysroot\fR PATH Override the system root .TP \fB\-Z\fR FLAG Set internal debugging options. Use "-Z help" to print available options. .TP \fB\-\-color\fR auto|always|never Configure coloring of output: auto = colorize, if output goes to a tty (default); always = always colorize output; never = never colorize output .SH CODEGEN OPTIONS .TP \fBar\fR=/path/to/ar Path to the archive utility to use when assembling archives. .TP \fBlinker\fR=/path/to/cc Path to the linker utility to use when linking libraries, executables, and objects. .TP \fBlink-args\fR='-flag1 -flag2' A space-separated list of extra arguments to pass to the linker when the linker is invoked. .TP \fBlto\fR Perform LLVM link-time optimizations. .TP \fBtarget-cpu\fR=help Selects a target processor. If the value is 'help', then a list of available CPUs is printed. .TP \fBtarget-feature\fR='+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 target-cpu=help. .TP \fBpasses\fR=list 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. .TP \fBllvm-args\fR='-arg1 -arg2' A space-separated list of arguments to pass through to LLVM. .TP \fBsave-temps\fR If specified, the compiler will save more files (.bc, .o, .no-opt.bc) generated throughout compilation in the output directory. .TP \fBrpath\fR If specified, then the rpath value for dynamic libraries will be set in either dynamic library or executable outputs. .TP \fBno-prepopulate-passes\fR Suppresses pre-population of the LLVM pass manager that is run over the module. .TP \fBno-vectorize-loops\fR Suppresses running the loop vectorization LLVM pass, regardless of optimization level. .TP \fBno-vectorize-slp\fR Suppresses running the LLVM SLP vectorization pass, regardless of optimization level. .TP \fBsoft-float\fR Generates software floating point library calls instead of hardware instructions. .TP \fBprefer-dynamic\fR Prefers dynamic linking to static linking. .TP \fBno-integrated-as\fR Force usage of an external assembler rather than LLVM's integrated one. .TP \fBno-redzone\fR Disable the use of the redzone. .TP \fBrelocation-model\fR=[pic,static,dynamic-no-pic] The relocation model to use. (Default: pic) .TP \fBcode-model\fR=[small,kernel,medium,large] Choose the code model to use. .TP \fBmetadata\fR=val Metadata to mangle symbol names with. .TP \fBextra-filename\fR=val Extra data to put in each output filename. .TP \fBcodegen-units\fR=val Divide crate into N units to optimize in parallel. .TP \fBremark\fR=val Print remarks for these optimization passes (space separated, or "all"). .TP \fBno-stack-check\fR Disable checks for stack exhaustion (a memory-safety hazard!). .TP \fBdebuginfo\fR=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. .TP \fBopt-level\fR=val Optimize with possible levels 0-3 .SH "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 .SH "SEE ALSO" rustdoc .SH "BUGS" See <\fBhttps://github.com/rust-lang/rust/issues\fR> for issues. .SH "AUTHOR" See \fBAUTHORS.txt\fR in the Rust source distribution. .SH "COPYRIGHT" This work is dual-licensed under Apache 2.0 and MIT terms. See \fBCOPYRIGHT\fR file in the rust source distribution.