Rust 入门搭建开发环境构建我们的第一个应用 Hello World及cargo项目
Posted BBinChina
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rust 入门搭建开发环境构建我们的第一个应用 Hello World及cargo项目相关的知识,希望对你有一定的参考价值。
构建我们的第一个应用
搭建开发环境
Linux or Mac
打开终端,运行以下命令
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
这个命令会下载脚本然后进行rustup 工具最新版本的安装,安装成功后会提示
Rust is installed now. Great!
一些常用的rust包会依赖c 编译器,因此需要确认环境是否已有c 编译器。
Windows
请访问rust官网并按照说明安装Rust。window搭建环境还需要virtual studio的编译工具包。
下载rustinit 安装进程后进行安装即可
同样成功后,提示
Rust is installed now. Great!
更新跟卸载
使用rustup指令
rustup update
相信应该不会使用卸载的
rustup self uninstall
确认当前的rust版本
rustc --version
我当前使用的版本:
如果看到此信息,说明已经成功安装Rust !
如果在Windows上没有看到此信息,请检查Rust是否在%PATH%系统变量中。
第一个rust应用
我的开发环境是centos 7
首先创建我们的源代码文件 main.rs,编写以下代码
fn main() {
println!("Hello, world!");
}
rust是一门编译型语言,所以我们需要使用rustc将源代码编译成可执行文件.
$ rustc main.rs
$ ./main
Hello, world!
掌握其他编译型语言的同学应该知道,当我们的执行程序加载到内存中执行时,需要告知操作系统程序的执行入口,所以约定俗成的采用了main 函数名。
函数的语法格式声明如下:
fn main() {
}
- fn为rust的关键字,用来标识函数语法。 main函数不需要参数,同时没有任何返回值。如果我们的函数需要接收参数时,参数写在()内,而函数体是用{}包裹。使用其他语言时,我都习惯将 { 与函数方在同一行,}则换行表示,中间即放逻辑。
- 在rust的发行版中 包含了 rustfmt 库,我们可以用来格式化我们的代码,让其符合rust的规范。
println!("Hello, world!");
我们的main函数使用了 rust宏 println! 来打印hello world !的字符串。
- 我们的函数体是 4个空格缩进,而不是tab
- 字符串 hello,world! 为println! 宏的参数,!表示println是宏,后面内容再讲到如何定义宏
- 语句采用**;**标识表达式的结束,下一个表达式的开始
至此,我们的第一个应用程序从编写->编译->执行,基本完成啦!
最后也衍生扩展下rust的函数语法格式跟其他语言的差异:
c++
//int 表示返回类型 + 函数名 + (参数列表) + {函数体}
int main(int argc, char* argv[]) {
return 0;
}
java
java的函数语法格式跟c++类似:
返回类型 函数名 (参数列表) {
函数体
}
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
go
语法格式:
func 函数名 (参数列表) (返回值列表){
函数体
}
package main // 声明 main 包
import (
"fmt" // 导入 fmt 包,打印字符串是需要用到
)
func main() { // 声明 main 主函数
fmt.Println("Hello World!") // 打印 Hello World!
}
cargo 构建发布rust项目
很多时候,我们的生产需求不是输出一句hello world这么简单,更多的业务需求跟软件工程需要我们构建出一个项目,可能会依赖其他开发者开发好或者我们自己构建的包,那么可以使用rust的工具cargo来实现包管理,cargo在我们安装rust的时候便自带了,可以通过以下指令查看当前版本:
cargo --version
使用cargo 构建项目
使用以下命令构建我们的hello_cargo工程
$ cargo new hello_cargo
$ cd hello_cargo
创建后,在我们的hello_cargo工程里包含如下的目录结构:
Cargo.toml解析
其内容采用toml(Tom’s Obvious, Minimal Language)格式,创造内容被大家所使用多么牛逼呀,相信大家都有一个当造物者的梦想,能创造说明我们真正理解了原理,所以造轮子就尽情地去造吧,重复了又怎样,自己造的轮子才是自己的。
[package]
name = "hello_cargo"
version = "0.1.0"
authors = ["Your Name <you@example.com>"]
edition = "2018"
[dependencies]
- [package]标识package段,以下内容表示package的配置
- name、version、authors、edition是配置信息
- [dependencies]标识依赖段,可以在其以下添加包名,在往后的教程内会引用其他包时,我们再往里面填内容
工程源文件目录 src
打开src/main.rs
fn main() {
println!("Hello, world!");
}
src只存放我们的源代码,而顶层目录只放置配置,或者readme、license等其他文件
编译和运行cargo项目
在我们的顶层目录执行一下指令
cargo build
编译成功后,会生成Cargo.lock文件即target目录
执行二进制文件hello_cargo
./target/debug/hello_cargo 或者 cargo run 指令
当然了,我们真正要发布的是release版本,而不是debug版本,那么可以使用以下命令构建:
release 表示构建参数
cargo build --release
总结
- 使用 cargo build 构建一个项目。
- 可以使用cargo run一步构建和运行一个项目。
- 编程过程中可以使用cargo check检查是否存在编译错误,而等待真正发布程序时再build构建二进制程序。
- Cargo没有将构建结果保存在与代码相同的目录中,而是将其存储在目标/debug目录中。
以上是关于Rust 入门搭建开发环境构建我们的第一个应用 Hello World及cargo项目的主要内容,如果未能解决你的问题,请参考以下文章