Rust语言从入门到精通系列 - 发布你的跨平台二进制文件
Rust 是一种系统级编程语言,具有高效、安全、并发等特点,因此在一些领域得到了广泛的应用。但是,Rust 语言本身并不提供跨平台编译的支持,这对于需要在不同操作系统上运行的项目来说是一个不小的挑战。为了解决这个问题,我们可以使用 Cross 工具,它可以帮助我们轻松地将 Rust 程序编译成各种平台的可执行文件。
在本教程中,我们将使用 Cross 工具来编译一个简单的加
、减
、乘
、除
四则运算的计算器,并将其发布到 Windows、Mac 和 Linux 等平台。
安装 Rust 和 Cargo
具体的安装步骤本篇文章不再赘述,请参考系列的前面的 Cargo 篇和 Hello World 篇。输入以下命令,确认编译环境是否准备就绪。
1
2
rustc --version
cargo --version
如果输出版本号,则说明环境正常。
安装 Cross
接下来,我们需要安装 Cross 工具。在终端中输入以下命令进行安装:
cargo install cross
安装完成后,同样,在终端使用cross --version
命令来验证安装是否成功。
创建项目
接下来,我们需要创建一个新的 Rust 项目。在终端中进入你想要创建项目的目录,然后运行以下命令:
1
cargo new calculator --bin
这将创建一个名为calculator
的新项目,并且告诉 Cargo 这是一个二进制文件(--bin
)。在项目目录中,你会看到一个src
文件夹和一个Cargo.toml
文件。
编写代码
现在,我们可以开始编写代码了。在src/main.rs
文件中,输入以下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use std::io::{self, Write};
fn main() {
let mut input = String::new();
print!("Enter an expression: ");
io::stdout().flush().unwrap();
io::stdin().read_line(&mut input).unwrap();
let tokens: Vec<&str> = input.trim().split(' ').collect();
let num1 = tokens[0].parse::<f64>().unwrap();
let num2 = tokens[2].parse::<f64>().unwrap();
let operator = tokens[1];
match operator {
"+" => println!("{} + {} = {}", num1, num2, num1 + num2),
"-" => println!("{} - {} = {}", num1, num2, num1 - num2),
"*" => println!("{} * {} = {}", num1, num2, num1 * num2),
"/" => println!("{} / {} = {}", num1, num2, num1 / num2),
_ => println!("Invalid operator"),
}
}
这是一个简单的计算器程序,它可以让用户输入一个操作,然后对两个数字执行该操作。如果操作无效,程序将提示用户重新输入。
构建项目
现在,我们可以使用 Cargo 来构建我们的项目。在终端中进入项目目录,然后运行以下命令:
1
cargo build --release
这将使用 Rust 编译器将我们的代码编译成一个二进制文件。--release
标志将优化代码以提高性能。构建完成后,你将在target/release
目录中找到一个名为calculator
的二进制文件。
发布二进制文件
现在,我们可以将二进制文件发布到各种平台上,让用户可以使用我们的计算器程序。在 Rust 中,我们可以使用 Cross 工具来跨平台构建二进制文件。
首先,我们需要安装 Cross。在终端中运行以下命令:
1
cargo install cross
安装完成后,我们可以使用 Cross 来构建二进制文件。运行以下命令:
1
2
3
cross build --release --target x86_64-pc-windows-gnu
cross build --release --target x86_64-apple-darwin
cross build --release --target x86_64-unknown-linux-gnu
这将分别构建 Windows、Mac 和 Linux 上的二进制文件。构建完成后,你将在target/x86_64-pc-windows-gnu/release
、target/x86_64-apple-darwin/release
和target/x86_64-unknown-linux-gnu/release
目录中找到三个二进制文件。
测试二进制文件
现在,我们可以测试我们的二进制文件了。在 Windows 上,双击calculator.exe
文件即可运行程序。在 Mac 和 Linux 上,打开终端并进入二进制文件所在的目录,然后运行以下命令:
1
./calculator
程序将启动并提示用户输入操作。输入操作后,程序将执行该操作并输出结果。
总结
在本教程中,我们学习了如何使用 Rust 编写一个简单的加减乘除计算器,并将其发布为二进制文件。我们使用 Cargo 来管理依赖和构建项目,使用 Cross 工具来跨平台构建二进制文件。通过这个例子,你可以学习如何使用 Rust 编写实用的命令行工具,并将其发布到各种平台上。
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 TinyZ Zzh (包含链接: https://tinyzzh.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。 如有任何疑问,请 与我联系 (tinyzzh815@gmail.com) 。
评论