[这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战]
一、 安装
1.编译环境选择
rust底层是依赖C环境,所以需要先安装C/C++编译环境, 有两种选择:
- 安装微软的C++ build tools,即 Visual Studio 2019 生成工具;
- 安装mingw/cygwin(模拟linux) ,需要配置 gnu toolchain开发环境(stable-x86_64-pc-windows-gnu):
- Cygwin 提供了Windows下的类Unix环境(Window);
- MinGW 是提供用于开发Window应用的开发环境(Linux)。
二、配置Cygwin
- 初始化与更新 Cygwin 包
为 64 位版本的 Windows 安装和更新 Cygwin:当您想要更新或安装适用于 64 位 Windows 的 Cygwin 软件包 时,请运行setup-x86_64.exe。该签名的设置,x86_64.exe可以用来验证这个二进制文件的有效性。
验证安装程序的签名:
1
2css复制代码gpg --recv-key 1A698DE9E2E56300
gpg --keyid-format=long --with-fingerprint --verify setup-x86_64.exe.sig setup-x86_64.exe
通过Cygwin Setup 可以更新包,为了能够通过命令安装软件,可以先使用该程序添加GIT。
- 打开后,直接下一步即可;
- 到了包管理页面找到GIT选择版本号即可;
- 再通过GIT安装apt-cyg。
1 | bash复制代码git clone https://github.com/transcode-open/apt-cyg.git |
注:wget安装会提示缺少lynx,需要通过Cygwin安装程序安装。
- 在windows命令下使用cygwin
需要添加环境变量,Path 添加 D:\cygwin64\bin
,刷新环境变量set PATH=C
。
在Window下通过以下命令可以进入类unix环境:
1 | bash复制代码D:\Environment\Rust>bash |
- Rustup前置程序
为了通过 Cygwin配置Rustup,需要通过Cygwin安装程序安装以下包:
- httpd
- make
- ls
- curl
三、Rustup
Rustup是Rust 安装程序和版本管理工具,相关资源
- 配置环境变量
1 | ini复制代码CARGO_HOME=D:\Environment\Rust\.cargo |
- 安装程序
打开rustup-init.exe文件,输入2,自定义安装选项,如下:
1 | vbnet复制代码host triple:x86_64-pc-windows-gnu 版本 |
查看安装结果:
1 | makefile复制代码C:\Users\86178>cargo version |
查看版本:
1 | sql复制代码C:\Users\86178>rustup show |
- Hello World
一个Hello World的例子。
3.1 配置
在windows配置项目:
1 | shell复制代码> mkdir "%USERPROFILE%\projects" |
创建一个新的源文件并将其命名为main.rs。Rust 文件总是以.rs扩展名结尾。如果您在文件名中使用多个单词,请使用下划线将它们分开。例如,使用hello_world.rs而不是 helloworld.rs。
1 | rust复制代码fn main() { |
注:将左大括号与函数声明放在同一行是一种很好的风格,中间加一个空格。如果你想在 Rust 项目中坚持标准风格,你可以使用一个自动格式化工具rustfmt
来以特定的风格格式化你的代码.
- Rust 风格是缩进四个空格,而不是一个制表符;
println!
调用一个 Rust 宏。如果它改为调用函数,则输入为println(不带!)- 大多数 Rust 代码行都以分号结尾。
3.2 编译与运行
在运行 Rust 程序之前,您必须使用 Rust 编译器通过输入rustc
命令并将源文件的名称传递给它来编译它
运行方式如下:
1 | shell复制代码-- Linux |
Rust 是一种提前编译语言,这意味着您可以编译程序并将可执行文件提供给其他人,他们甚至可以在没有安装 Rust 的情况下运行它。如果你给某人一个.rb、.py或 .js文件,他们需要安装一个 Ruby、Python 或 JavaScript 实现(分别)。但是在这些语言中,您只需要一个命令来编译和运行您的程序。一切都是语言设计的权衡。
四、Cargo
Cargo 是 Rust 的构建系统和包管理器。大多数 Rustaceans 使用这个工具来管理他们的 Rust 项目,因为 Cargo 为你处理了很多任务,比如构建代码、下载代码依赖的库以及构建这些库。(我们将您的代码需要的库称为依赖项。)
- Cargo创建项目
查看是否安装cargo:
1 | rust复制代码cargo --version |
使用 Cargo 创建项目:
1 | rust复制代码$ cargo new hello_cargo |
- 文件结构
生成以下文件
- src
- main.rs
- Cargo.toml
- .gitignore
- .git Git存储库
Cargo.toml(Tom's Obvious, Minimal Language
)的内容如下:
1 | ini复制代码[package] |
使用 Cargo 可以组织项目结构,使所有对象都有迹可循。
- 编译与运行项目
1 | scss复制代码$ cargo build |
- 相关实例
1 | rust复制代码use std::io; //使用use 语句将该类型显式引入作用域 |
read_line函数源码如下:
1 | rust复制代码 #[stable(feature = "rust1", since = "1.0.0")] |
read_line将用户输入的内容放入我们传递给它的字符串中,但它也返回一个值Result,表示函数运行结果,这个模块有不同的实现,例如io::Result
。Result类型是enum,通常被称为枚举。枚举是一种可以具有一组固定值的类型,这些值称为枚举的变体。对于Result,变体是Ok或Err。所述Ok变体指示操作是成功的,并且内部Ok是成功生成值。该Err变种意味着操作失败,并Err包含有关操作如何或为何失败的信息。
如果您不调用expect,程序将编译,但会收到警告。
五、参考资料
本文转载自: 掘金