mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 06:44:35 +00:00
b2dc2ef709
Fixes #27686
297 lines
7.4 KiB
Groff
297 lines
7.4 KiB
Groff
.TH RUSTC "1" "August 2015" "rustc 1.2.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
|
|
.UR https://www.rust\-lang.org
|
|
.UE .
|
|
|
|
.SH OPTIONS
|
|
|
|
.TP
|
|
\fB\-h\fR, \fB\-\-help\fR
|
|
Display the help message.
|
|
.TP
|
|
\fB\-\-cfg\fR \fISPEC\fR
|
|
Configure the compilation environment.
|
|
.TP
|
|
\fB\-L\fR [\fIKIND\fR=]\fIPATH\fR
|
|
Add a directory to the library search path.
|
|
The optional \fIKIND\fR can be one of:
|
|
.RS
|
|
.TP
|
|
\fBdependency\fR
|
|
only lookup transitive dependencies here
|
|
.TP
|
|
.B crate
|
|
only lookup local `extern crate` directives here
|
|
.TP
|
|
.B native
|
|
only lookup native libraries here
|
|
.TP
|
|
.B framework
|
|
only look for OSX frameworks here
|
|
.TP
|
|
.B all
|
|
look for anything here (the default)
|
|
.RE
|
|
.TP
|
|
\fB\-l\fR [\fIKIND\fR=]\fINAME\fR
|
|
Link the generated crate(s) to the specified library \fINAME\fR.
|
|
The optional \fIKIND\fR can be one of \fIstatic\fR, \fIdylib\fR, or
|
|
\fIframework\fR.
|
|
If omitted, \fIdylib\fR 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\fR \fINAME\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 \fBrustc\fR 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\ debuginfo=2\fR.
|
|
.TP
|
|
\fB\-O\fR
|
|
Equivalent to \fI\-C\ opt\-level=2\fR.
|
|
.TP
|
|
\fB\-o\fR \fIFILENAME\fR
|
|
Write output to \fIFILENAME\fR.
|
|
Ignored if multiple \fI\-\-emit\fR outputs are specified.
|
|
.TP
|
|
\fB\-\-out\-dir\fR \fIDIR\fR
|
|
Write output to compiler\[hy]chosen filename in \fIDIR\fR.
|
|
Ignored if \fI\-o\fR is specified.
|
|
Defaults to the current directory.
|
|
.TP
|
|
\fB\-\-explain\fR \fIOPT\fR
|
|
Provide a detailed explanation of an error message.
|
|
.TP
|
|
\fB\-\-test\fR
|
|
Build a test harness.
|
|
.TP
|
|
\fB\-\-target\fR \fITRIPLE\fR
|
|
Target triple \fIcpu\fR\-\fImanufacturer\fR\-\fIkernel\fR[\-\fIos\fR]
|
|
to compile for (see chapter 3.4 of
|
|
.UR http://www.sourceware.org/autobook/
|
|
.UE
|
|
for details).
|
|
.TP
|
|
\fB\-W help\fR
|
|
Print 'lint' options and default settings.
|
|
.TP
|
|
\fB\-W\fR \fIOPT\fR, \fB\-\-warn\fR \fIOPT\fR
|
|
Set lint warnings.
|
|
.TP
|
|
\fB\-A\fR \fIOPT\fR, \fB\-\-allow\fR \fIOPT\fR
|
|
Set lint allowed.
|
|
.TP
|
|
\fB\-D\fR \fIOPT\fR, \fB\-\-deny\fR \fIOPT\fR
|
|
Set lint denied.
|
|
.TP
|
|
\fB\-F\fR \fIOPT\fR, \fB\-\-forbid\fR \fIOPT\fR
|
|
Set lint forbidden.
|
|
.TP
|
|
\fB\-C\fR \fIFLAG\fR[=\fIVAL\fR], \fB\-\-codegen\fR \fIFLAG\fR[=\fIVAL\fR]
|
|
Set a codegen\[hy]related flag to the value specified.
|
|
Use \fI\-C help\fR 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 \fINAME\fR=\fIPATH\fR
|
|
Specify where an external rust library is located. These should match
|
|
\fIextern\fR declarations in the crate's source code.
|
|
.TP
|
|
\fB\-\-sysroot\fR \fIPATH\fR
|
|
Override the system root.
|
|
.TP
|
|
\fB\-Z\fR \fIFLAG\fR
|
|
Set internal debugging options.
|
|
Use \fI\-Z help\fR to print available options.
|
|
.TP
|
|
\fB\-\-color\fR auto|always|never
|
|
Configure coloring of output:
|
|
.RS
|
|
.TP
|
|
.B auto
|
|
colorize, if output goes to a tty (default);
|
|
.TP
|
|
.B always
|
|
always colorize output;
|
|
.TP
|
|
.B never
|
|
never colorize output.
|
|
.RE
|
|
|
|
.SH CODEGEN OPTIONS
|
|
|
|
.TP
|
|
\fBar\fR=\fI/path/to/ar\fR
|
|
Path to the archive utility to use when assembling archives.
|
|
.TP
|
|
\fBlinker\fR=\fI/path/to/cc\fR
|
|
Path to the linker utility to use when linking libraries, executables, and
|
|
objects.
|
|
.TP
|
|
\fBlink\-args\fR='\fI\-flag1 \-flag2\fR'
|
|
A space\[hy]separated list of extra arguments to pass to the linker when the linker
|
|
is invoked.
|
|
.TP
|
|
\fBlto\fR
|
|
Perform LLVM link\[hy]time optimizations.
|
|
.TP
|
|
\fBtarget\-cpu\fR=\fIhelp\fR
|
|
Selects a target processor.
|
|
If the value is 'help', then a list of available CPUs is printed.
|
|
.TP
|
|
\fBtarget\-feature\fR='\fI+feature1\fR,\fI\-feature2\fR'
|
|
A comma\[hy]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 \fIllc -mcpu=help\fR.
|
|
.TP
|
|
\fBpasses\fR=\fIval\fR
|
|
A space\[hy]separated list of extra LLVM passes to run.
|
|
A value of 'list' will cause \fBrustc\fR to print all known passes and
|
|
exit.
|
|
The passes specified are appended at the end of the normal pass manager.
|
|
.TP
|
|
\fBllvm\-args\fR='\fI\-arg1\fR \fI\-arg2\fR'
|
|
A space\[hy]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\[hy]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: \fIpic\fR)
|
|
.TP
|
|
\fBcode\-model\fR=[small,kernel,medium,large]
|
|
Choose the code model to use.
|
|
.TP
|
|
\fBmetadata\fR=\fIval\fR
|
|
Metadata to mangle symbol names with.
|
|
.TP
|
|
\fBextra\-filename\fR=\fIval\fR
|
|
Extra data to put in each output filename.
|
|
.TP
|
|
\fBcodegen\-units\fR=\fIn\fR
|
|
Divide crate into \fIn\fR units to optimize in parallel.
|
|
.TP
|
|
\fBremark\fR=\fIval\fR
|
|
Print remarks for these optimization passes (space separated, or "all").
|
|
.TP
|
|
\fBno\-stack\-check\fR
|
|
Disable checks for stack exhaustion (a memory\[hy]safety hazard!).
|
|
.TP
|
|
\fBdebuginfo\fR=\fIval\fR
|
|
Debug info emission level:
|
|
.RS
|
|
.TP
|
|
.B 0
|
|
no debug info;
|
|
.TP
|
|
.B 1
|
|
line\[hy]tables only (for stacktraces and breakpoints);
|
|
.TP
|
|
.B 2
|
|
full debug info with variable and type information.
|
|
.RE
|
|
.TP
|
|
\fBopt\-level\fR=\fIVAL\fR
|
|
Optimize with possible levels 0\[en]3
|
|
|
|
.SH ENVIRONMENT
|
|
|
|
Some of these affect the output of the compiler, while others affect programs
|
|
which link to the standard library.
|
|
|
|
.TP
|
|
\fBRUST_TEST_THREADS\fR
|
|
The test framework Rust provides executes tests in parallel. This variable sets
|
|
the maximum number of threads used for this purpose.
|
|
|
|
.TP
|
|
\fBRUST_TEST_NOCAPTURE\fR
|
|
A synonym for the --nocapture flag.
|
|
|
|
.TP
|
|
\fBRUST_MIN_STACK\fR
|
|
Sets the minimum stack size for new threads.
|
|
|
|
.TP
|
|
\fBRUST_BACKTRACE\fR
|
|
If set, produces a backtrace in the output of a program which panics.
|
|
|
|
.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"
|
|
|
|
.BR rustdoc (1)
|
|
|
|
.SH "BUGS"
|
|
See
|
|
.UR https://github.com/rust\-lang/rust/issues
|
|
.UE
|
|
for issues.
|
|
|
|
.SH "AUTHOR"
|
|
See \fIAUTHORS.txt\fR in the Rust source distribution.
|
|
|
|
.SH "COPYRIGHT"
|
|
This work is dual\[hy]licensed under Apache\ 2.0 and MIT terms.
|
|
See \fICOPYRIGHT\fR file in the rust source distribution.
|