如何将已建成的防锈库添加到货物构建中?

10 rust rust-cargo

我有一个项目,让我们称这个项目为Master.这个Master项目取决于我已经编写的其他库,并且在不同的项目中分开,让我们称这个项目库.

将git依赖项或未构建的项目依赖项添加到rust中非常简单.但是,如果我想选择已经构建的Library.librs,告诉货物在编译Master(输出Master.exe)时使用它,那么我可以运送整个程序,如下所示:

-Master
--lib
---Library.librs
--Master.exe
Run Code Online (Sandbox Code Playgroud)

这可以用货物完成,还是我必须使用带有-L参数的rustc?如果是这样,怎么样?感谢您提出任何有用的建议.

Gil*_*les 8

Cargo通常将主src文件夹作为src放置,所以我假设它就在那里.

Master文件夹中的Cargo.toml文件看起来像(它将在/ src上面的根目录中):

[package]
name = "Master"
version = "0.0.1"
authors = ["You"]

[dependencies.Library_lib]
path = "src/lib"
Run Code Online (Sandbox Code Playgroud)

然后在/ src中,您可以获得项目Master的源代码.在/ src/lib中为您的库添加另一个Cargo.toml文件:

[package]
name  = "Library_lib"
version = "0.0.1"
authors = ["You"]

[lib]
name = "Library_lib"
path = "lib.rs"
Run Code Online (Sandbox Code Playgroud)

最后在你的/ src/ src/lib中放一个lib.rs文件(在每个地方).

在src/main.rs中,您可以同样引用您的库:

extern crate Library_lib;

use Library_lib::something_to_import_from_lib;
Run Code Online (Sandbox Code Playgroud)

这是您引用crate并使用use语句的地方,因此您可以使用lib中的内容.

在/ src/lib/lib.rs中,使用pub关键字声明要公开的单元.