Rust by Example

11.2 extern crate

クレイトをこの新しいライブラリにリンクするには、extern crate宣言を使用する必要があります。これはライブラリをリンクするだけでなく、その要素を全てライブラリと同じ名前のモジュールにインポートします。モジュールにおけるパブリック・プライベートなどのスコープのルールは全て、ライブラリにおいても当てはまります。

// executable.rs
// `library`にリンクし、`rary`モジュール内の要素を全てインポートする。
extern crate rary;

fn main() {
    rary::public_function();

    // エラー!`private_function`はプライベート
    //rary::private_function();

    rary::indirect_access();
}
# `-L .`を引数として与えることで、カレントディレクトリをライブラリのサーチパスに追加します。
$ rustc -L . executable.rs && ./executable
called rary's `public_function()`
called rary's `indirect_access()`, that
> called rary's `private_function()`