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

1cosmwyk  于 2023-11-19  发布在  Go
关注(0)|答案(5)|浏览(106)

如何在Rust中编写一个程序,可以在任何地方执行,而无需使用cargo run,只需单击文件即可?
有任何板条箱吗?我写了蛇游戏的代码,我想通过点击一个文件来运行它。

9nvpjoqh

9nvpjoqh1#

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

cargo build --release

字符串
它将在./target/release中放置一个二进制文件。因此,如果您的应用程序名为snake_game,则可以使用./target/release/snake_game运行它,或者双击该文件。
此二进制文件是完全独立的,因此您可以将其移动或复制到计算机上的其他位置。

o8x7eapl

o8x7eapl2#

首先构建您的二进制文件以进行发布

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,code,等等.

sudo code /etc/paths


我添加了一个这样的路径,保存并使用密码进行身份验证

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


whoami命令被包围'
接下来,将新的二进制文件复制到该二进制文件夹中需要它的位置

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

然后打开新的终端窗口

检查命令是否在路径中

where whateverYourProgramIsCalled

从任意位置运行命令

whateverYourProgramIsCalled

欢乐

nzrxty8p

nzrxty8p3#

只是想在这里添加另一个答案,不确定它是否与最近版本的Rust有关。
如果在项目的根目录下运行cargo install --path .命令,它会将其添加到cargo中,并允许您仅使用项目名称运行二进制文件。

epfja78i

epfja78i4#

还有另一种方法可以使用rustc。它将在文件所在的目录中创建一个可执行的二进制文件。
确保您位于src目录中,并且文件名为main.rs。

rustc main.rs
./main

字符串
使用rustc的好处是,你可以运行任何文件,而不仅仅是main.rs。

rustc filename.rs
 ./filename


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

bkhjykvo

bkhjykvo5#

cargo install --path .

字符串
如果你想运行它作为另一个安装在本地的sudo应用程序,idk为什么人们建议手动启动sudo cping sh**周围.

相关问题