Rust语言从入门到精通系列 - 发布你的跨平台二进制文件

1 分钟阅读

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/releasetarget/x86_64-apple-darwin/releasetarget/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)

TinyZ Zzh

TinyZ Zzh

专注于高并发服务器、网络游戏相关(Java、PHP、Unity3D、Unreal Engine等)技术,热爱游戏事业, 正在努力实现自我价值当中。

评论

  点击开始评论...