01_搭建和试用开发环境

rust的官网 https://www.rust-lang.org/

1. 安装、卸载rust

windows环境
下载windows安装包
image
双击后进入命令行安装,按照提示输入数字选项安装即可。
image
如果系统中缺少c++的库,会提示先安装visual studio。
image

linux or MAC:

curl https://sh.rustup.rs -sSf | sh

Windows Subsystem for Linux:

curl --proto '=https’ --tlsv1.2 -sSf https://sh.rustup.rs| sh

更新/卸载

# 更新
rustup update
# 卸载
rustup self uninstall

验证安装结果
启动命令行窗口,输入

rustc --version
rustc 1.72.0 (5680fa18f 2023-08-23)

结果格式:rustc x.y.z (abcabcabc yyyy-mm-dd)
显示最新稳定版的:版本号、commit hash、commit 日期


查看本地文档
rust同时会安装上本地帮助文档,便于离线浏览。
运行rustup doc可跳转到浏览器打开本地文档。

可用的开发工具:vs code / clion + 各自的rust插件即可


2. 测试hello world

创建源文件hello_world.rs,文件后缀是.rs。

fn main() { // 定义主函数,无参无返回值,程序入口
    println!("hello world"); // 4个空格,println!是一宏,不是函数,分号结尾
}

编译 rustc hello_world.rs会生成可执行文件,在命令行运行即可打出hello world。
在windows下还会生成一个.pdb文件,是一调试信息文件。

rust语言是一种静态编译的语言,即目标可执行文件是指令级二进制的,目标机器可不用安装rust。


3. cargo工具

上面安装rust时会自动安装上cargo,它是rust的构建系统和包管理工具,负责构建代码、下载依赖库、构建并启动运行等。
一样的,在命令行输入cargo --version查看是否成功。

> cargo --version
cargo 1.72.0 (103a7ff2e 2023-08-15)

使用cargo创建项目
使用命令 cargo new 项目名称

cargo new hello_cargo

执行后自动创建了一个项目文件夹,含以下文件

+--- .gitignore # 这是因自动初始化了一新的git仓库,并创建ignore文件
+--- Cargo.toml # 配置文件,用于配置依赖库等信息,配置后cargo在编译时会自动去下载依赖库
+--- src
|   +--- main.rs # 主函数文件,里边已一hello world程序,可直接编译运行

注:如果不使用VCS,要使用--vcs选项,命令cargo new --vcs hello_cargo

  • Cargo.toml的内容
    其中.toml含义:Tom's Obvious, Minimal Language,cargo的配置格式。
[package] # 一个区域标题,表示下方内容是用来配置包(package)的
name = "hello_cargo" # 项目名
version = "0.1.0" # 项目版本
edition = "2021" # 使用的rust版本
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies] # 另一个区域开始,dependencies区域
# 所有依赖添加在这里,比如如下配置
rand = "^0.3.14" # 引入依赖rand库(crate),版本是0.3.14,^表示只要与0.3.14兼容版本皆可
  • src/main.rs的内容
fn main() {
    println!("Hello, world!");
}

顶层目录可放置README、许可信息、配置文件、其它与程序源码无关的文件
如果创建项目时未使用cargo,也可转换成cargo,只需

  • 将所有源文件移动到src下
  • 创建出一个Cargo.toml文件

cargo build 构建项目,会在target/debug/目录下生成可执行文件hello_cargo / hello_cargo.exe
第一次运行会在顶层目录生成cargo.lock文件,用于追踪项目依赖的精确版本,无需手动修改。

cargo run 构建并运行项目,若之前已编译成功且无修改,则会直接运行二进制。

cargo check 检查代码,确保能编译通过,但不生成可执行文件。比cargo build快,提高效率。

cargo build --release 用于编译发布版本,编译时进行优化,编译耗时更长,会在target/release下生成可执行文件。

posted @ 2023-10-09 16:16  00lab  阅读(25)  评论(0编辑  收藏  举报