# Error code E0457

#### Note: this error code is no longer emitted by the compiler`

Plugin `..` only found in rlib format, but must be available in dylib format.

Erroneous code example:

`rlib-plugin.rs`

    #![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`

    #![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 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 of the Rust reference.

This error is easily fixed by recompiling the plugin crate in the dylib format.