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

我如何制作一个可以在不使用“cargo run”的情况下执行的Rust程序?,rust,rust-cargo,Rust,Rust Cargo,我如何用Rust制作一个程序,只需单击该文件,就可以在任何地方执行,而无需使用cargo run 有板条箱吗?我已经为snake游戏编写了代码,我想通过点击一个文件来运行它。如果您使用以下工具编译一个Rust应用程序: 货物构建-发布 它将在/target/release中放置一个二进制文件。因此,如果您的应用程序名为snake\u game,则可以使用/target/release/snake\u game,或者双击该文件来运行它 此二进制文件是完全独立的,因此您可以将其移动或复制到计算机上

我如何用Rust制作一个程序,只需单击该文件,就可以在任何地方执行,而无需使用
cargo run


有板条箱吗?我已经为snake游戏编写了代码,我想通过点击一个文件来运行它。

如果您使用以下工具编译一个Rust应用程序:

货物构建-发布
它将在
/target/release
中放置一个二进制文件。因此,如果您的应用程序名为
snake\u game
,则可以使用
/target/release/snake\u game
,或者双击该文件来运行它


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

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

确保您位于src目录中,并且文件名为main.rs

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

 rustc filename.rs
 ./filename
您可以从终端运行它,也可以单击该文件。

首先构建二进制文件以供发布 下一个句柄权限 通常
chmod+x target/release/whateveryourprogram被称为
以使其可执行,但cargo已经为我们做到了这一点

您可以检查它的八进制权限 正如你所见,一切都没有改变。。。权限已正确,无法执行

运行那个可执行文件 可选:从任何地方运行 您可以在命令行的任何位置运行该二进制文件

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

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

不管你喜欢什么编辑。。。。vi、代码等

sudo code /etc/paths
我添加了这样一个路径,用密码保存和验证

/Users/`whoami`/code/rust/binaries
whoami命令被`

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

cp whateverYourProgramIsCalled /Users/`whoami`/code/rust/binaries
然后打开一个新的终端窗口 检查您的命令是否在您的路径中 从任何地方运行您的命令
运行
cargo build--release
时,将在
target/release
目录中创建可执行文件。请注意,它可能无法从任何地方执行,但只能从使用与您正在使用的操作系统和硬件兼容的计算机执行;e、 g.如果您在运行Windows的PC上构建,生成的可执行文件将在运行Windows的其他PC上运行。这就是你要找的吗?另外,要扩展上面的注释,这个可执行文件是自动包含的,可以通过单击它来运行。不需要板条箱,也不需要货物。它应该适用于使用编译平台(例如Windows)的任何地方,除非您使用具有系统库依赖项的特定板条箱。正如OP提到的一个游戏,我假设有资源()。当OP提到“点击”时,我假设它们在Windows上。通过这种方式,二进制文件已经被放置,但它并没有打开!它也适用于linux吗?我是linux用户,缺点是需要手动下载每个依赖项,然后将每个依赖项作为参数传递给
rustc
。我看不出这有什么好处。另外,使用
cargo
,您可以在
cargo.toml
[bin]
部分中指定除
main.rs
之外的其他二进制入口点。
sudo code /etc/paths
/Users/`whoami`/code/rust/binaries
cp whateverYourProgramIsCalled /Users/`whoami`/code/rust/binaries
where whateverYourProgramIsCalled
whateverYourProgramIsCalled