6c62839a7f
On OSX the linker has a separate framework lookup path which is specified via the `-F` flag. This adds a new kind of `-L` path recognized by the compiler for frameworks to be passed through to the linker. Closes #20259
231 lines
6.3 KiB
Groff
231 lines
6.3 KiB
Groff
.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 [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)
|
|
.TP
|
|
\fB\-l\fR [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.
|
|
.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.
|