The Cargo book describes how to have a library and multiple executable美元,在一个货运项目中.

我希望可执行文件由多个源文件组成,这些源文件特定于可执行文件,而不在库中.

例如

  • 库本身中的src/lib1.ars、src/lib2.ars、src/lib3.ars、
  • 对于exe1可执行文件,src/bin/exe1.ars+另一个特定于exe1的源文件.

我应该将最后一个源文件放在哪里,这样它就不会编译到库中,而是编译到可执行文件中?

推荐答案

Cargo支持的在一个包中拥有单个二进制文件的多个源文件的方法是为它提供一个包含main.rs的目录.The documentation on “Package Layout”给出了这个例子(我go 掉了不相关的元素):

src/
├── lib.rs
└── bin/
    ├── named-executable.rs
    ├── another-executable.rs
    └── multi-file-executable/
        ├── main.rs
        └── some_module.rs

你想要multi-file-executable箱在这里.按照您希望二进制文件命名的任何方式命名目录.您的main.rs将包含mod some_module;,就像这个项目是一个简单的src/main.rs项目一样.

Rust相关问答推荐

如何在 struct 中填充缓冲区并同时显示它?

基于对vec值的引用从该值中删除该值

将已知大小的切片合并成一个数组,

有没有办法模仿对象安全克隆?

MutexGuard中的过滤载体不需要克隆

同时从不同线程调用DLL的不同函数会出现分段错误或产生STATUS_STACK_BUFFER_OVERRUN

有没有办法指定只在Rust的测试中有效的断言?

我如何制作一个变异迭代器来锁定内部数据直到删除?

当发送方分配给静态时,Tokio MPSC关闭通道

将Vec<;U8&>转换为Vec<;{Float}&>

如果变量本身不是None,如何返回;如果没有,则返回None&Quot;?

用于实现获取 struct 体 id 的特征规范

如何在 `connect_activate()` 之外创建一个 `glib::MainContext::channel()` 并将其传入?

面临意外的未对齐指针取消引用:地址必须是 0x8 的倍数,但为 0x__错误

在 Rust 中,为什么整数溢出有时会导致编译错误或运行时错误?

为什么传递 option.as_ref 的行为不同于使用匹配块并将内部映射到 ref 自己?

在 Rust 中如何将值推送到枚举 struct 内的 vec?

Rust:如果我知道只有一个实例,那么将可变borrow 转换为指针并返回(以安抚borrow 判断器)是否安全?

为什么-x试图解析为文字并在声明性宏中失败?

在 macro_rules 中转义 $ 美元符号