docs: add long-form error-code docs for E0457
This commit is contained in:
36
compiler/rustc_error_codes/src/error_codes/E0457.md
Normal file
36
compiler/rustc_error_codes/src/error_codes/E0457.md
Normal file
@@ -0,0 +1,36 @@
|
||||
Plugin `..` only found in rlib format, but must be available in dylib format.
|
||||
|
||||
Erroronous code example:
|
||||
|
||||
`rlib-plugin.rs`
|
||||
```ignore (needs-linkage-with-other-tests)
|
||||
#![crate_type = "rlib"]
|
||||
#![feature(rustc_private)]
|
||||
|
||||
extern crate rustc_middle;
|
||||
extern crate rustc_driver;
|
||||
|
||||
use rustc_driver::plugin::Registry;
|
||||
|
||||
#[no_mangle]
|
||||
fn __rustc_plugin_registrar(_: &mut Registry) {}
|
||||
```
|
||||
|
||||
`main.rs`
|
||||
```ignore (needs-linkage-with-other-tests)
|
||||
#![feature(plugin)]
|
||||
#![plugin(rlib_plugin)] // error: plugin `rlib_plugin` only found in rlib
|
||||
// format, but must be available in dylib
|
||||
|
||||
fn main() {}
|
||||
```
|
||||
|
||||
The compiler exposes a plugin interface to allow altering the compile process
|
||||
(adding lints, etc). Plugins must be defined in their own crates (similar to
|
||||
[proc-macro](../reference/procedural-macros.html) isolation) and then compiled
|
||||
and linked to another crate. Plugin crates *must* be compiled to the
|
||||
dynamically-linked dylib format, and not the statically-linked rlib format.
|
||||
Learn more about different output types in
|
||||
[this section](../reference/linkage.html) of the Rust reference.
|
||||
|
||||
This error is easily fixed by recompiling the plugin crate in the dylib format.
|
||||
Reference in New Issue
Block a user