Cargo
Cargo 是 Rust 的官方包管理工具,类似于 Node.js 的 npm,提供了关于 Rust 项目的工程构建、代码编译、依赖管理、开源发布等相关功能。1
初始化工程
Cargo 提供了两种基础方式初始化项目cargo new
与cargo init
。其中cargo new
包含新建文件夹操作,cargo init
则是对当前文件夹进行初始化
$ cargo new hello-rust # Rust 工程文件目录命名一般为 snake case
$ cd hello-rust
$ code ./ # 通过 vscode 打开当前项目
或者
$ mkdir hello-rust # Rust 工程文件目录命名一般通过 kebab-case 方式(即各个单词或缩写之间以 - (连字符)做间隔)命名
$ cd hello-rust
$ cargo init
Cargo.toml
Cargo 新建后的目录下会有以下几个文件(夹)
- .git
- .gitignore
上面两个是老熟人 Git 的相关文件,用于代码管理,同时 .gitignore 已经将 Rust 的常见排除项添加好了 - src/main.rs
- cargo.toml
src/main.rs 是我们的工程文件,先放一边
cargo.toml 是基于 Cargo 的 Rust 工程的配置文件,通过 Toml 格式进行编排 2
在终端通过code .
在 vscode 中打开 hello-rust 项目,点开 cargo.toml 便可以看到 hello-rust 项目的相关信息(类似于 npm 的package.json)
main.rs
再回到 src/main.rs,可以看到熟悉的 main 函数 fn main()
,同时有一句 println!("Hello, world!");
。对的,Cargo 已经为准备好 Hello, world! 接下来只需要运行即可
命令行
回到命令行工具
$ cargo run
在短暂的等待后 Hello, world!
cargo run
是直接编译并运行,另外如果执行cargo build
也会构建项目,但并不会直接运行。
VSCode
回到VSCode环境
按下 F5,尝试在 VSCode 下调试,此时 VSCode 会弹出选择调试器,选择 LLDB。提示
Cannot start debugging because no launch configuration has been provided.
点击确定,提示
Cargo.toml has been detected in this workspace.
Would you like to generate launch configurations for its targets?
选择 Yes。此时 VSCode 会为我们生成一个基于 LLDB 的 Launcher(位于 .vscode/launch.json)
再次按下 F5,在短暂的等待后可以看到 VSCode 终端里Hello, world!
rust-analyzer
在 VSCode 安装了 rust-analyzer 后可以看到fn main()
的上方有两个按钮 Run | Debug。点击 Run,VSCode 的终端会执行cargo run
也能输出Hello, world!
,但缺少了按下 F5 时出现的调试工具栏。点击 Debug,VSCode 会进入调试模式运行(此时不需要 .vscode/launch.json 也能调试)。