如何在Rust中编写一个程序,可以通过点击文件而不是使用cargo run从任何地方执行?
是否有适用的crate?我已经编写了贪吃蛇游戏的代码,希望能通过点击文件来运行它。
如何在Rust中编写一个程序,可以通过点击文件而不是使用cargo run从任何地方执行?
是否有适用的crate?我已经编写了贪吃蛇游戏的代码,希望能通过点击文件来运行它。
如果你使用以下方式编译Rust应用程序:
cargo build --release
它将在 ./target/release
目录下放置一个二进制文件。因此,如果您的应用程序名为 snake_game
,您可以使用 ./target/release/snake_game
运行它,或者双击该文件。
这个二进制文件是完全自包含的,所以您可以将其移动或复制到计算机上的其他地方。
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
我想在这里添加另一个答案,不确定它是否与更近期的 Rust 版本相关。
如果在项目根目录中只运行命令 cargo install --path .
,它将添加到 cargo 并允许您仅使用项目名称运行二进制文件。
你可以使用rustc来进行另一种方法。它将在与您的文件相同的目录中创建一个可执行二进制文件。
确保您在src目录中,并且您的文件名为main.rs。
rustc main.rs
./main
rustc filename.rs
./filename
你可以从终端运行它,也可以通过点击该文件来运行。
rustc
。我看不出任何优点。 - Peter Hallcargo
,您可以在 Cargo.toml
的 [bin]
部分中指定除 main.rs
以外的其他二进制入口点。 - Peter Hallcargo install --path .
cargo build --release
时,可执行文件将在target/release
目录中创建。请注意,它可能无法从“任何地方”执行,而只能在使用与您所使用的操作系统和硬件兼容的机器上执行;例如,如果您在运行Windows的PC上构建,则生成的可执行文件将在运行Windows的其他PC上运行。这是您要寻找的内容吗? - user4815162342