1 .TH RUSTC "1" "March 2014" "rustc 0.11.0" "User Commands"
3 rustc \- The Rust compiler
6 [\fIOPTIONS\fR] \fIINPUT\fR
9 This program is a compiler for the Rust language, available at
10 <\fBhttps://www.rust-lang.org\fR>.
15 \fB\-\-crate-name NAME\fR
16 Specify the name of the crate being built
18 \fB\-\-crate-type=[bin|lib|dylib|rlib|staticlib]\fR
19 Configure the flavor of rust crate that is generated (default `bin`)
22 Configure the compilation environment
24 \fB\-\-emit=[asm,ir,bc,obj,link]\fR
25 Configure the output that rustc will produce
27 \fB\-h\fR, \fB\-\-help\fR
31 Add a directory to the library search path
34 Run all passes except translation; no output
36 \fB\-\-no\-analysis\fR
37 Parse and expand the source, but run no analysis and produce no output
40 Emit DWARF debug information into object files generated.
42 \fB\-\-debuginfo\fR LEVEL
43 Emit DWARF debug info to the objects created: 0 = no debug info, 1 =
44 line-tables only (for stacktraces and breakpoints), 2 = full debug
45 info with variable and type information (same as -g).
48 Equivalent to \fI\-\-opt\-level=2\fR
51 Write output to <filename>. Ignored if more than one --emit is specified.
53 \fB\-\-opt\-level\fR LEVEL
54 Optimize with possible levels 0-3
56 \fB\-\-out\-dir\fR DIR
57 Write output to compiler-chosen filename in <dir>. Ignored if -o is specified.
58 (default the current directory)
61 Parse only; do not compile, assemble, or link
63 \fB\-\-pretty\fR [TYPE]
64 Pretty-print the input instead of compiling; valid types are: normal
65 (un-annotated source), expanded (crates expanded), typed (crates
66 expanded, with type annotations), or identified (fully parenthesized,
67 AST nodes and blocks with IDs)
69 \fB\-\-dep-info\fR [FILENAME]
70 Output dependency info to <filename> after compiling, in o format suitable
73 \fB\-\-sysroot\fR PATH
74 Override the system root
79 \fB\-\-target\fR TRIPLE
80 Target triple cpu-manufacturer-kernel[-os] to compile for (see
81 http://sources.redhat.com/autobook/autobook/autobook_17.html
85 Print 'lint' options and default settings
87 \fB\-W\fR OPT, \fB\-\-warn\fR OPT
90 \fB\-A\fR OPT, \fB\-\-allow\fR OPT
93 \fB\-D\fR OPT, \fB\-\-deny\fR OPT
96 \fB\-F\fR OPT, \fB\-\-forbid\fR OPT
100 Set internal debugging options. Use "-Z help" to print available options.
102 \fB\-C\fR FLAG[=VAL], \fB\-\-codegen\fR FLAG[=VAL]
103 Set a codegen-related flag to the value specified. Use "-C help" to print
104 available flags. See CODEGEN OPTIONS below
106 \fB\-v\fR, \fB\-\-version\fR
107 Print version info and exit
113 Path to the archive utility to use when assembling archives.
115 \fBlinker\fR=/path/to/cc
116 Path to the linker utility to use when linking libraries, executables, and
119 \fBlink-args\fR='-flag1 -flag2'
120 A space-separated list of extra arguments to pass to the linker when the linker
123 \fBtarget-cpu\fR=help
124 Selects a target processor. If the value is 'help', then a list of available
127 \fBtarget-feature\fR='+feature1 -feature2'
128 A space-separated list of features to enable or disable for the target. A
129 preceding '+' enables a feature while a preceding '-' disables it. Available
130 features can be discovered through target-cpu=help.
133 A space-separated list of extra LLVM passes to run. A value of 'list' will
134 cause rustc to print all known passes and exit. The passes specified are
135 appended at the end of the normal pass manager.
137 \fBllvm-args\fR='-arg1 -arg2'
138 A space-separated list of arguments to pass through to LLVM.
141 If specified, the compiler will save more files (.bc, .o, .no-opt.bc) generated
142 throughout compilation in the output directory.
145 If specified, then the rpath value for dynamic libraries will be set in
146 either dynamic library or executable outputs.
148 \fBno-prepopulate-passes\fR
149 Suppresses pre-population of the LLVM pass manager that is run over the module.
151 \fBno-vectorize-loops\fR
152 Suppresses running the loop vectorization LLVM pass, regardless of optimization
155 \fBno-vectorize-slp\fR
156 Suppresses running the LLVM SLP vectorization pass, regardless of optimization
160 Generates software floating point library calls instead of hardware
164 Prefers dynamic linking to static linking.
166 \fBno-integrated-as\fR
167 Force usage of an external assembler rather than LLVM's integrated one.
169 \fBrelocation-model\fR=[pic,static,dynamic-no-pic]
170 The relocation model to use. (default: pic)
173 To build an executable from a source file with a main function:
174 $ rustc -o hello hello.rs
176 To build a library from a source file:
177 $ rustc --crate-type=lib hello-lib.rs
179 To build either with a crate (.rs) file:
182 To build an executable with debug info:
183 $ rustc -g -o hello hello.rs
190 See <\fBhttps://github.com/rust-lang/rust/issues\fR> for issues.
193 See \fBAUTHORS.txt\fR in the Rust source distribution.
196 This work is dual-licensed under Apache 2.0 and MIT terms. See \fBCOPYRIGHT\fR
197 file in the rust source distribution.