我有一个项目,让我们称这个项目为Master。这个Master项目依赖于我已经编写的其他库,并且在不同的项目中分开,让我们称这个项目库。
将git依赖项或未构建的项目依赖项添加到rust中非常简单。但是,如果我想选择已经构建的Library.librs,告诉货物在编译Master(输出Master.exe)时使用它,那么我可以运送整个程序,如下所示:
-Master
--lib
---Library.librs
--Master.exe
这可以用货物完成,还是我必须使用带有-L参数的rustc?如果是这样,怎么样?感谢您提出任何有用的建议。
答案 0 :(得分:8)
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 关键字声明要公开的单位。
答案 1 :(得分:0)
在已经具有cargo.toml文件的货物防锈文件中,您可以在货物toml文件中添加库。
[package]
name = "Library"
version = "0.1.0"
authors = ["you"]
edition = "2018"
这是打包文件,您可以在[dependencies]中添加库 路径/
[dependencies]
name = "Library"
path = ".rs"