Rust Cargo All In One
Rust Cargo All In One
https://blog.rust-lang.org/2022/08/11/Rust-1.63.0.html
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Rust 由工具
rustup
安装和管理。
Rust 有着以 6 星期为周期的 快速版本迭代机制
,支持 大量平台,因而不同时期存在大量不同的 Rust 构建版本
。
rustup 用于管理不同平台下的 Rust 构建版本并使其互相兼容, 支持安装由 Beta 和 Nightly 频道发布的版本,并支持其他用于交叉编译
的编译版本。
如果您曾经安装过 rustup,可以执行 rustup update 来升级 Rust。
配置 PATH 环境变量
在 Rust 开发环境中,所有工具都安装在 ~/.cargo/bin
目录中,您可以在这里找到包括 rustc
、cargo
和 rustup
在内的 Rust 工具链
。
Rust 开发者通常会将该目录加入 PATH环境变量中。
在安装过程中,rustup 会尝试配置 PATH。
由于不同平台、命令行 Shell 之间存在差异,rustup 中也可能存在 Bug,因此在终端重启或用户重新登录之前,rustup 对 PATH 的修改可能不会生效,甚至完全无效。
如果安装后在终端尝试执行 rustc --version
失败,那么,以上内容就是最可能的原因。
https://www.rust-lang.org/zh-CN/tools/install
使用 rustup 安装 rust 后,自带了 cargo
$ cargo -h
Rust's package manager
USAGE:
cargo [+toolchain] [OPTIONS] [SUBCOMMAND]
OPTIONS:
-V, --version Print version info and exit
--list List installed commands
--explain <CODE> Run `rustc --explain CODE`
-v, --verbose Use verbose output (-vv very verbose/build.rs output)
-q, --quiet Do not print cargo log messages
--color <WHEN> Coloring: auto, always, never
--frozen Require Cargo.lock and cache are up to date
--locked Require Cargo.lock is up to date
--offline Run without accessing the network
--config <KEY=VALUE> Override a configuration value
-Z <FLAG> Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for
details
-h, --help Print help information
Some common cargo commands are (see all commands with --list):
build, b Compile the current package
check, c Analyze the current package and report errors, but don't build object files
clean Remove the target directory
doc, d Build this package's and its dependencies' documentation
new Create a new cargo package
init Create a new cargo package in an existing directory
add Add dependencies to a manifest file
run, r Run a binary or example of the local package
test, t Run the tests
bench Run the benchmarks
update Update dependencies listed in Cargo.lock
search Search registry for crates
publish Package and upload this package to the registry
install Install a Rust binary. Default location is $HOME/.cargo/bin
uninstall Uninstall a Rust binary
See 'cargo help <command>' for more information on a specific command.
Cargo
https://doc.rust-lang.org/cargo/index.html
https://doc.rust-lang.org/cargo/getting-started/installation.html
https://doc.rust-lang.org/cargo/getting-started/first-steps.html
# generate a new package
$ cargo new hello_world
manifest (Cargo.toml)
Rust Cargo.toml
[package]
name = "first_rust_package"
version = "0.0.1"
edition = "2021"
# edition = "2022"
# custom config ✅
author = "xgqfrms"
editor = "vscode"
# warning: unused manifest key: package.author
# warning: unused manifest key: package.editor
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
# rust cowsay
# 配置后,无需再次手动导入外部包 external crate
# all dependencies will be auto imported 🚀
ferris-says = "0.2.1"
https://github.com/xgqfrms/rust-in-action/blob/master/test/first_rust_package/Cargo.toml
https://doc.rust-lang.org/cargo/appendix/glossary.html#manifest
package
https://doc.rust-lang.org/cargo/appendix/glossary.html#package
crate
https://doc.rust-lang.org/cargo/appendix/glossary.html#crate
rustc
https://doc.rust-lang.org/rustc/index.html
rustdoc
https://doc.rust-lang.org/rustdoc/index.html
rustwasm
https://rustwasm.github.io/docs/book/
rust-cli
https://rust-cli.github.io/book/index.html
cargo 命令补充
cargo clippy: 类似 eslint,lint工具检查代码可以优化的地方
cargo fmt: 类似 go fmt,代码格式化
cargo tree: 查看第三方库的版本和依赖关系
cargo bench: 运行benchmark(基准测试,性能测试)
cargo udeps (第三方): 检查项目中未使用的依赖
另外 cargo build/run --release 使用 release 编译会比默认的 debug 编译性能提升 10 倍以上,但是 release 缺点是编译速度较慢,而且不会显示 panic backtrace 的具体行号
https://www.runoob.com/rust/cargo-tutorial.html
refs
https://www.runoob.com/rust/rust-tutorial.html
https://www.rust-lang.org/zh-CN/learn
©xgqfrms 2012-2020
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/16659275.html
未经授权禁止转载,违者必究!