extern crate
クレートにライブラリをリンクするには、extern crate宣言が必要です。
これはライブラリをリンクするだけでなく、ライブラリのモジュールを
ライブラリ名と同じ名前でインポートします。可視性のルールはモジュール
だけでなくライブラリにも適用されます。
// `library`とリンクし、`rary`モジュールの要素をインポートします。
extern crate rary;
fn main() {
rary::public_function();
// エラー! `private_function`はプライベートです
//rary::private_function();
rary::indirect_access();
}
# library.rlibのようなコンパイルされたライブラリのパスは、
# 同じディレクトリにあることが想定されています。
$ rustc executable.rs --extern rary=library.rlib && ./executable
called rary's `public_function()`
called rary's `indirect_access()`, that
> called rary's `private_function()`