< 返回版块

echo 发表于 2021-11-06 10:04

我是前端,之前看到一个跟前端相关的库 swc,感觉 rust 很有意思,就开始自己看了,这两天大致了解了 rust 的语法,mod 相关的,但是使用 cargo 创建的工程,我不太明白 cargo 是怎么来运行这些工程的,比如我在 src 下创建了一个 bin 目录,bin 目录下有我学习 rust 过程创建的各个 lesson 目录,在同一个 lesson 目录下的文件,我必须在 main.rs 定义 mod 才能去使用其他文件导出的 struct 或者方法,如果直接使用 crate::xxx 去加载是找不到的,因为这个会去找 src 根目录,好像整个 bin 目录和 src 是脱离的。这块没太搞懂。官方的那个实践讲的有点简单。

评论区

写评论
作者 echo 2021-11-06 10:58

好的,我去试试,感谢大佬回复

--
👇
gwy15: 要从 main.rs 或者 lib.rs 里面一层一层显式声明 mod 才可以把 src 下面的作为模块。

binsrc 是两个不同的 crate,bin 或者 example,包括 tests 下面要用 src 里面的东西需要把对应的接口导出到 lib.rs,然后 bin 里面用 use crate_name 导入

gwy15 2021-11-06 10:54

要从 main.rs 或者 lib.rs 里面一层一层显式声明 mod 才可以把 src 下面的作为模块。

binsrc 是两个不同的 crate,bin 或者 example,包括 tests 下面要用 src 里面的东西需要把对应的接口导出到 lib.rs,然后 bin 里面用 use crate_name 导入

作者 echo 2021-11-06 10:12

不得不说 rust 的包管理工具 cargo 设计的是真牛逼

1 共 3 条评论, 1 页