如何制作一个可以在不使用 `cargo 运行` 的情况下执行的 Rust 程序?

How do I make a Rust program which can be executed without using `cargo run`?

如何在 Rust 中创建一个程序,它可以在不使用 cargo run 的情况下通过单击文件从任何地方执行?

有没有箱子?我已经为贪吃蛇游戏编写了代码,我想 运行 只需单击一个文件即可。

如果你编译一个 Rust 应用程序:

cargo build --release

它将在 ./target/release 中放置一个二进制文件。因此,如果您的应用程序名为 snake_game,您可以使用 ./target/release/snake_game 或双击该文件 运行。

此二进制文件是完全独立的,因此您可以将其移动或复制到计算机上的其他位置。

还有另一种方法可以使用 rustc。它将在文件所在的同一目录中创建一个可执行二进制文件。

确保您在 src 目录中并且文件的名称是 main.rs。

rustc main.rs
./main

使用 rustc 的优点是您可以 运行 任何文件,而不仅仅是 main.rs。只是做:

 rustc filename.rs
 ./filename

您可以从终端 运行 也可以通过单击该文件来

首先为发布构建二进制文件

cargo build --release 

下一步处理权限

通常chmod +x target/release/whateverYourProgramIsCalled 使可执行,但 cargo 已经为我们做到了

您可以检查它的八进制权限

ls -l target/release/whateverYourProgramIsCalled
chmod +x target/release/whateverYourProgramIsCalled
ls -l target/release/whateverYourProgramIsCalled

如您所见,没有任何变化...执行权限已经正确

运行那个可执行文件

./whateverYourProgramIsCalled 

可选:运行 来自任何地方

您可以 运行 从命令行在任何地方使用该二进制文件

为此,您需要将其添加到您的路径中

对于 mac,您可以从 /etc/paths

添加到您的路径

您喜欢的任何编辑器....vi、代码等...

sudo code /etc/paths

我添加了这样的路径,保存并使用密码验证

/Users/`whoami`/code/rust/binaries

whoami 命令被 `

包围

接下来将您的新二进制文件复制到它需要的位置,在该二进制文件文件夹中

cp whateverYourProgramIsCalled /Users/`whoami`/code/rust/binaries

然后打开一个新终端window

检查你的命令在你的路径中

where whateverYourProgramIsCalled

运行 从任何地方你的命令

whateverYourProgramIsCalled 

欢喜