欢迎光临散文网 会员登陆 & 注册

1.4 Hello Cargo

2023-02-15 11:18 作者:本人帅依萱  | 我要投稿

前言:

ps:第一章前三节的笔记由于作用不大,忽略。

•             第一节:简介

•             第二节:安装rust

•             第三节:Hello World

Rustc

•             Rustc 是 Rust 编译器的缩写,是 Rust 语言的核心工具之一。

•             虽然 Rust 语言和 Rustc 编译器都有优秀的性能和内存安全特性,但是在处理大型项目时,大型项目可能会产生复杂的依赖关系和代码结构,这可能会影响 Rustc 编译器的性能。在 Rustc 编译器的工作方式中,代码的类型推断和 borrow checker 等功能需要进行复杂的计算,这可能会导致编译时间比较长。此外,Rustc 编译器的错误信息和调试信息等也比较详细,这也会增加编译时间和输出文件的大小。

•             因此对于一些比较大的项目,我们需要使用其他的工具,这些工具就叫cargo。

Cargo

•             Corgo是Rust的构建系统和包管理工具:
-- 能构建代码、下载依赖的库、构建这些库...

•             安装Rust 的时候会自动安装Cargo
测试cargo是否正常安装的方法如下:

cargo --version
//查询cargo版本,如果cargo正常安装,会弹出cargo版本信息


弹出cargo版本信息


使用Cargo创建项目

cargo new hello_cargo;
//创建一个cargo项目
//cargo new 项目名;

用Cargo创建项目


会创建一个新的目录:hello_cargo

•             Cargo.toml
-- Cargo的配置模式

•             src目录
-- main.rs

•             初始化了一个新的 Git 仓库: .gifignore
-- 可以使用其它的VCS或不使用VCS:cargo new的时候使用--vcs这个flag

Cargo.toml

Cargo.toml文件内容


•             [package] 区域标题,下方内容是用来配置package包的
-- name:项目名
-- version:项目版本
-- authors:项目作者
-- edition: 使用的Rust版本

•             [dependencies],另一个区域的开始,它会列出项目的依赖项

•             在Rust里,代码的包被称作crate

scr/main.rs

•             cargo生成的mcin.rs在src目录下

•             Cargo.foml在项日顶层下

•             源代码都应该在src目录下

•             顶层目录可以放置:README、许可信息、配置文件和其它与程序源码无关的文件

•             如果创建项目时没有使用cargo,也可以把项目转化为使用cargo:
-- 把源代码文件移到src下
-- 创建Cargo.toml并填写相应的配置

构建Cargo项目

cargobuild

•             cargo build
-- 创建可执行文件:target/debug/hello_cargo(Linux)或target\debug \hello_cargo.exe(Windows)
-- 运行可执行文件:./target/debug/hello_cargo或.target\debug\hello_cargo.exe(Windows

•             第一次运行 corgo build 会在顶层目录生成 cargo.lock 文件
-- 该文件负责追踪项目依赖的精确版本
-- 不需要手动修改该文件(宇宙毁灭了也不要手改!)

cargo run

•             Cargo run:编译代码+执行结果
如果之前编译成功过,并且源码没有改变,那么就会直接运行二进制文件

•            

两次cargo run的对比


cargo check

•             cargo check:检查代码,确保能通过编译,但是不产生任何可执行文件

•             cargo check要比 cargo build 快得多
-- 编写代码的时候可以连续反复的使用 cargo check检查代码,提高效率

为发布构建

•             cargo build --release
-- 编译时会进行优化,代码会运行的更快,但是编译时间更长
会在 target/release 而不是target/debug生成可执行文件

cargo build有无--release的对比



•             两种配置:
-- target/debug用于开发
-- target/release用于正式发布


1.4 Hello Cargo的评论 (共 条)

分享到微博请遵守国家法律