Error code E0462

Found staticlib .. instead of rlib or dylib.

Consider the following two files:

a.rs

#![crate_type = "staticlib"]

fn foo() {}

main.rs

extern crate a;

fn main() {
    a::foo();
}

Crate a is compiled as a staticlib. A staticlib is a system-dependant library only intended for linking with non-Rust applications (C programs). Note that staticlibs include all upstream dependencies (core, std, other user dependencies, etc) which makes them significantly larger than dylibs: prefer staticlib for linking with C programs. Learn more about different crate_types in this section of the Reference.

This error can be fixed by:

  • Using Cargo, the Rust package manager, automatically fixing this issue.
  • Recompiling the crate as a rlib or dylib; formats suitable for Rust linking.