10

我有一个项目,我们称这个项目为Master。这个主项目依赖于我已经编写的其他库,并且在不同的项目中是分开的,我们称之为这个项目库。

将 git 依赖项或未构建的项目依赖项添加到 rust 中非常简单。但是,如果我想选择已经构建的 Library.librs,告诉 cargo 在编译 Master(输出 Master.exe)时使用它,这样我就可以使用这样的层次结构发布整个程序:

-Master
--lib
---Library.librs
--Master.exe

这可以用货物来完成,还是我必须使用带有 -L 参数的 rustc ?如果是这样,究竟如何?感谢您提供任何有用的想法。

4

1 回答 1

9

Cargo 通常将主src文件夹作为src,所以我假设它在哪里。

您在 Master 文件夹中的 Cargo.toml 文件将如下所示(它将位于 /src 上方的根目录中):

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

[dependencies.Library_lib]
path = "src/lib"

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

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

[lib]
name = "Library_lib"
path = "lib.rs"

最后在您的/src/src/lib中放置一个 lib.rs 文件(在每个位置)。

在 src/main.rs 你也可以引用你的库:

extern crate Library_lib;

use Library_lib::something_to_import_from_lib;

这是你引用 crate 并有你的 use 语句的地方,这样你就可以使用 lib 中的东西。

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

于 2014-10-10T19:53:25.027 回答