企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

Rust如何在一个目录下放多个可执行程序?

wudianyun 2025-09-13 10:49:03 精选文章 2 ℃


这个问题,用Rust的话说,应该是,如何在一个Package中,包含多个binary crates?

这个问题在刷leetcode的时候,经常遇到,如果不想写很多的tests,又不想建很多的目录,这是一个不错选择。

怎么做呢?《The Rust Programming Language》中,有提到,可以建一个bin目录,然后把多个可执行程序的文件放在里面。但是,没有举例。我们在这里举个例子。

假设我们要建一个greeting的package,里面包含两个可执行程序,一个是hello,一个是hi。

先利用cargo建一个greeting的package。

cargo new greeting

进入greeting目录。

cd greeting

我们可以看到目录中的文件。

tree

├── Cargo.toml
└── src
    └── main.rs

我们把main.rs删除,建一个bin目录,然后把两个可执行程序的文件放进去。

rm src/main.rs
mkdir src/bin
touch src/bin/hello.rs
touch src/bin/hi.rs

这时,目录结构如下。

tree
.
├── Cargo.toml
└── src
    └── bin
        ├── hello.rs
        └── hi.rs

修改hello.rs。

filename: src/bin/hello.rs

fn main() {
    println!("Hi, world!");
}

修改hi.rs。a

filename: src/bin/hi.rs

fn main() {
    println!("Hello, world!");
}

执行hello。

cargo run --bin hello
...
Hello, world!

执行hi。

cargo run --bin hello
...
Hi, world!

PS. 这篇文章是用VSCode写的,同时用了腾讯云代码助手 CodeBuddy。不算paste的代码,中文很多都是它自动生成的,这让我非常怀疑有人已经写过这样的文章了。当然,写过类似的文章没什么。可怕的是,我觉得别人写的例子文件也是hello.rs和hi.rs,里面的代码和我写的也是一样的。

最近发表
标签列表