forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rustc.1
174 lines (162 loc) · 4.31 KB
/
rustc.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
.TH RUSTC "1" "February 2013" "rustc 0.6" "User Commands"
.SH NAME
rustc \- 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\-\-bin\fR
Compile an executable crate (default)
.TP
\fB\-c\fR
Compile and assemble, but do not link
.TP
\fB\-\-cfg\fR SPEC
Configure the compilation environment
.TP
\fB\-\-emit\-llvm\fR
Produce an LLVM bitcode file
.TP
\fB\-h\fR, \fB\-\-help\fR
Display this message
.TP
\fB\-L\fR PATH
Add a directory to the library search path
.TP
\fB\-\-lib\fR
Compile a library crate
.TP
\fB\-\-ls\fR
List the symbols defined by a library crate
.TP
\fB\-\-no\-trans\fR
Run all passes except translation; no output
.TP
\fB\-O\fR
Equivalent to \fI\-\-opt\-level=2\fR
.TP
\fB\-o\fR FILENAME
Write output to <filename>
.TP
\fB\-\-opt\-level\fR LEVEL
Optimize with possible levels 0-3
.TP
\fB\-\-out\-dir\fR DIR
Write output to compiler-chosen filename in <dir>
.TP
\fB\-\-parse\-only\fR
Parse only; do not compile, assemble, or link
.TP
\fB\-\-pretty\fR [TYPE]
Pretty-print the input instead of compiling; valid types are: normal
(un-annotated source), expanded (crates expanded), typed (crates
expanded, with type annotations), or identified (fully parenthesized,
AST nodes and blocks with IDs)
.TP
\fB\-S\fR
Compile only; do not assemble or link
.TP
\fB\-\-save\-temps\fR
Write intermediate files (.bc, .opt.bc, .o) in addition to normal output
.TP
\fB\-\-sysroot\fR PATH
Override the system root
.TP
\fB\-\-test\fR
Build a test harness
.TP
\fB\-\-target\fR TRIPLE
Target triple cpu-manufacturer-kernel[-os] to compile for (see
http://sources.redhat.com/autobook/autobook/autobook_17.html
for detail)
.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\-Z\fR FLAG
Set internal debugging options. Use "-Z help" to print available options.
Available debug flags are:
.RS
.IP \[bu]
\fBverbose\fR - in general, enable more debug printouts
.IP \[bu]
\fBtime\-passes\fR - measure time of each rustc pass
.IP \[bu]
\fBcount\-llvm\-insns\fR - count where LLVM instrs originate
.IP \[bu]
\fBtime\-llvm\-passes\fR - measure time of each LLVM pass
.IP \[bu]
\fBtrans\-stats\fR - gather trans statistics
.IP \[bu]
\fBno\-asm\-comments\fR - omit comments when using \fI\-S\fR
.IP \[bu]
\fBno\-verify\fR - skip LLVM verification
.IP \[bu]
\fBtrace\fR - emit trace logs
.IP \[bu]
\fBcoherence\fR - perform coherence checking
.IP \[bu]
\fBborrowck\-stats\fR - gather borrowck statistics
.IP \[bu]
\fBborrowck\-note\-pure\fR - note where purity is req'd
.IP \[bu]
\fBborrowck\-note\-loan\fR - note where loans are req'd
.IP \[bu]
\fBno\-landing\-pads\fR - omit landing pads for unwinding
.IP \[bu]
\fBdebug\-llvm\fR - enable debug output from LLVM
.IP \[bu]
\fBcount\-type\-sizes\fR - count the sizes of aggregate types
.IP \[bu]
\fBmeta\-stats\fR - gather metadata statistics
.IP \[bu]
\fBno\-opt\fR - do not optimize, even if \fI\-O\fR is passed
.IP \[bu]
\fBno\-monomorphic\-collapse\fR - do not collapse template instantiations
.IP \[bu]
\fBgc\fR - Garbage collect shared data (experimental)
.IP \[bu]
\fBjit\fR - Execute using JIT (experimental)
.IP \[bu]
\fBextra\-debug\-info\fR - Extra debugging info (experimental)
.IP \[bu]
\fBdebug\-info\fR - Produce debug info (experimental)
.IP \[bu]
\fBstatic\fR - Use or produce static libraries or binaries (experimental)
.RE
.TP
\fB\-v\fR, \fB\-\-version\fR
Print version info and exit
.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 --lib hello-lib.rs
To build either with a crate (.rc) file:
$ rustc hello.rc
To build an executable with debug info (experimental):
$ rustc -Z debug-info -o hello hello.rs
.SH "BUGS"
See <\fBhttps://github.com/mozilla/rust/issues\fR> for issues.
.SH "AUTHOR"
See \fBAUTHORS.txt\fR in the rust source distribution. Graydon Hoare
<\[email protected]\fR> is the project leader.
.SH "COPYRIGHT"
This work is dual-licensed under Apache 2.0 and MIT terms. See \fBCOPYRIGHT\fR
file in the rust source distribution.