extern crate

要把上一节创建的库链接到一个 crate,必须使用 extern crate 声明。这不仅会 链接库,还会用一个与库名相同的模块来存放库里面的所有项。于模块的可见性规则也 适用于库。

  1. // 链接到 `rary` 库,导入其中的项
  2. extern crate rary;
  3. fn main() {
  4. rary::public_function();
  5. // 报错! `private_function` 是私有的
  6. //rary::private_function();
  7. rary::indirect_access();
  8. }
  1. # library.rlib 是已编译好的库的路径,这里假设它在同一目录下:
  2. $ rustc executable.rs --extern rary=library.rlib && ./executable
  3. called rary's `public_function()`
  4. called rary's `indirect_access()`, that
  5. > called rary's `private_function()`