Improve docs for using custom paths with --emit
This commit is contained in:
parent
76e7a0849c
commit
3eb5341c3d
@ -213,21 +213,39 @@ The valid emit kinds are:
|
|||||||
`CRATE_NAME.o`.
|
`CRATE_NAME.o`.
|
||||||
|
|
||||||
The output filename can be set with the [`-o` flag](#option-o-output). A
|
The output filename can be set with the [`-o` flag](#option-o-output). A
|
||||||
suffix may be added to the filename with the [`-C extra-filename`
|
suffix may be added to the filename with the
|
||||||
flag](codegen-options/index.md#extra-filename). The files are written to the
|
[`-C extra-filename` flag](codegen-options/index.md#extra-filename).
|
||||||
current directory unless the [`--out-dir` flag](#option-out-dir) is used. Each
|
|
||||||
emission type may also specify the output filename with the form `KIND=PATH`,
|
Output files are written to the current directory unless the
|
||||||
which takes precedence over the `-o` flag.
|
[`--out-dir` flag](#option-out-dir) is used.
|
||||||
Specifying `-o -` or `--emit KIND=-` asks rustc to emit to stdout.
|
|
||||||
Text output types (`asm`, `dep-info`, `llvm-ir` and `mir`) can be written to
|
|
||||||
stdout despite it being a tty or not. This will result in an error if any
|
|
||||||
binary output type is written to stdout that is a tty.
|
|
||||||
This will also result in an error if multiple output types
|
|
||||||
would be written to stdout, because they would be all mixed together.
|
|
||||||
|
|
||||||
[LLVM bitcode]: https://llvm.org/docs/BitCodeFormat.html
|
[LLVM bitcode]: https://llvm.org/docs/BitCodeFormat.html
|
||||||
[LLVM IR]: https://llvm.org/docs/LangRef.html
|
[LLVM IR]: https://llvm.org/docs/LangRef.html
|
||||||
|
|
||||||
|
### Custom paths for individual emit kinds
|
||||||
|
|
||||||
|
Each emit type can optionally be followed by `=` to specify an explicit output
|
||||||
|
path that only applies to the output of that type. For example:
|
||||||
|
|
||||||
|
- `--emit=link,dep-info=/path/to/dep-info.d`
|
||||||
|
- Emit the crate itself as normal,
|
||||||
|
and also emit dependency info to the specified path.
|
||||||
|
- `--emit=llvm-ir=-,mir`
|
||||||
|
- Emit MIR to the default filename (based on crate name),
|
||||||
|
and emit LLVM IR to stdout.
|
||||||
|
|
||||||
|
### Emitting to stdout
|
||||||
|
|
||||||
|
When using `--emit` or [`-o`](#option-o-output), output can be sent to stdout
|
||||||
|
by specifying `-` as the path (e.g. `-o -`).
|
||||||
|
|
||||||
|
Binary output types can only be written to stdout if it is not a tty.
|
||||||
|
Text output types (`asm`, `dep-info`, `llvm-ir` and `mir`) can be written to
|
||||||
|
stdout regardless of whether it is a tty or not.
|
||||||
|
|
||||||
|
Only one type of output can be written to stdout. Attempting to write multiple
|
||||||
|
types to stdout at the same time will result in an error.
|
||||||
|
|
||||||
<a id="option-print"></a>
|
<a id="option-print"></a>
|
||||||
## `--print`: print compiler information
|
## `--print`: print compiler information
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user