创建Rust可执行程序的方式

总结一下最近Rust学习中关于创建可执行程序的三种方式:

第一种方式

直接用cargo来创建可执行项目,如下:

1
cargo new multi_bins

该命令将创建名字为multi_bins的可执行程序项目。项目目录结构如下:

其中的main.rs文件为可执行程序的源码文件,它包含了main函数,其简单输出一句"Hello, world!"

执行如下命令将编译得到可执行程序:

1
cargo build --release

可执行文件创建成功后,其路径为:

执行该程序

第二种方式

src目录下创建bin目录

然后在bin目录下创建包含main函数的源码文件。可以创建多个这样的文件,例如创建如下两个文件:

可以直接用cargo run --bin来运行这两个可执行程序。实际上是在target/debug下生成这两个文件的可执行程序并且运行它们

也可以编译得到可执行文件:

第三种方式

Cargo.toml文件中进行配置,指定可执行程序的名称以及它的源码路径。这种方法可以使得可执行程序的源码既不是main.rs,也不需要放置于src/bin目录下,还可以随意指定它的名字。


执行如下构建命令:

生成可执行文件如下:

总结

上述三种方式中,第一种是最常用的,它是Rust的默认方式,main.rs默认为可执行项目的执行程序源码,main函数就是其入口。第二种方式把所有可执行程序的源码都放置到src/bin目录下,Cargo编译项目的时候会将这个目录下所有的包含main函数的源码文件都编译成和源码文件同名的可执行程序。第三种方式是最灵活的,它可以在Cargo.toml里进行灵活的配置,使得可执行程序的名称与它的源码路径解耦;从另一个角度来说这种方式使得可执行程序源码可以不必一定是src/main.rssrc/bin/中的包含main函数的文件。