rust学习-cargo和crates.io

这篇具有很好参考价值的文章主要介绍了rust学习-cargo和crates.io。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用发布配置来自定义构建

Cargo 有两个主要的配置:
(1)运行 cargo build 时采用的 dev 配置
(2)运行 cargo build --release 的 release 配置

$ cargo build
    Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
$ cargo build --release
    Finished release [optimized] target(s) in 0.0 secs

Cargo.toml 文件没任何 [profile.] 时,Cargo 对每一个配置采用默认设置。
通过在[profile.
]对应的部分中增加任何定制的配置

// 控制 Rust 会对代码进行何种程度的优化
// 值从 0 到 3
// 越高的优化级别需要更多的时间编译
[profile.dev]
opt-level = 0

[profile.release]
opt-level = 3

使用工作空间来组织更大的项目

构建目录如下

// rust_add % tree
.
├── Cargo.lock
├── Cargo.toml
├── add-one
│   ├── Cargo.toml
│   └── src
│       └── lib.rs
├── add-two
│   ├── Cargo.toml
│   └── src
│       └── lib.rs
├── adder
│   ├── Cargo.toml
│   └── src
│       └── main.rs

Cargo.toml

[workspace]

members = [
    "adder",
    "add-one",
    "add-two",
]

add-one/src/lib.rs

pub fn add_one(x: i32) -> i32 {
    x + 1
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn it_works() {
        assert_eq!(3, add_one(2));
    }
}

add-two/src/lib.rs

pub fn add_two(x: i32) -> i32 {
    x + 2
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn it_works() {
        assert_eq!(4, add_two(2));
    }
}

adder/src/main.rs

use add_one;
use add_two;

fn main() {
    let num = 10;
    println!("Hello, world! {} plus one is {}!", num, add_one::add_one(num));
    println!("Hello, world! {} plus two is {}!", num, add_two::add_two(num));
}

命令

// 根目录下创建lib
cargo new add-two --lib
cargo new add-one --lib

// 根目录下执行构建
cargo build

// 根目录下执行测试
cargo test

// 运行adder中的main
cargo run -p adder

cargo install 从 Crates.io 安装二进制文件

cargo install 命令用于在本地安装和使用二进制 crate
crate 的 README 文件有该 crate 是库、二进制目标还是两者都是的信息。

cargo install ripgrep

最后一行输出展示了安装的二进制文件的位置和名称
在这里 ripgrep 被命名为 rg

  Installing /Users/xxx/.cargo/bin/rg

将安装目录加入 $PATH (rust在安装时已经加入了PATH)

// pwd
/Users/xxx/.cargo/bin
// ls
cargo		cargo-miri	rls		rust-gdbgui	rustdoc
cargo-clippy	clippy-driver	rust-analyzer	rust-lldb	rustfmt
cargo-fmt	rg		rust-gdb	rustc		rustup

运行 rg --help 并开始使用一个更快更 Rust 的工具来搜索文件文章来源地址https://www.toymoban.com/news/detail-581129.html

到了这里,关于rust学习-cargo和crates.io的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RUST 每日一省:发布到crates.io

            github是开源代码分享的地方,rust的开源项目除了github,我们还可以将其发布到 crates.io 上,然后其它用户就可以使用cargo进行安装使用了。其实步骤很简单,只有三条命令了,我们一次来看一下。         1、cargo package         首先,让 Cargo 帮你打个包:    

    2024年03月10日
    浏览(43)
  • 使用Cargo国内镜像提升Rust开发效率

    Rust是一门现代化的系统编程语言,而Cargo则是Rust的官方包管理工具。在进行Rust项目开发时,由于网络原因,从Crates.io下载依赖可能会很慢。为了提高开发效率,我们可以配置Cargo使用国内的镜像源,以加速包的下载和构建过程。 步骤一:进入Cargo配置目录 打开终端或命令提

    2024年02月21日
    浏览(49)
  • Rust学习日记(一)Cargo的使用

    前言: 这是一个系列的学习笔记,会将笔者学习Rust语言的心得记录。 当然,这并非是流水账似的记录,而是结合实际程序项目的记录,如果你也对Rust感兴趣,那么我们可以一起交流探讨,使用Rust来构建程序。 注:本文中使用Rust都是在windows环境下,如果是macOS或者linux,其

    2024年02月05日
    浏览(37)
  • 【Rust】Rust学习 第七章使用包、Crate和模块管理不断增长的项目

    目前为止,我们编写的程序都在一个文件的一个模块中。伴随着项目的增长,你可以通过将代码分解为多个模块和多个文件来组织代码。一个包可以包含多个二进制 crate 项和一个可选的 crate 库。伴随着包的增长,你可以将包中的部分代码提取出来,做成独立的 crate,这些

    2024年02月13日
    浏览(38)
  • 【Rust教程 | 基础系列2 | Cargo工具】Cargo介绍及使用

    在编程世界中,工具的选择与使用同样重要,甚至有时候比编程语言本身更为重要。对于Rust来说,Cargo就是这样一款强大的工具。本文将详细介绍Cargo的各项功能,并通过实例演示如何使用这些功能。希望通过本文,读者能够熟练掌握Cargo的使用,从而更好地进行Rust开发。

    2024年02月15日
    浏览(59)
  • 【Rust 基础篇】Rust Cargo 自定义构建

    在 Rust 中,Cargo 是一个功能强大的构建工具和包管理器,它可以帮助我们管理项目的依赖、构建和发布。Cargo 提供了许多默认的构建行为,但有时我们需要自定义构建过程以满足特定的需求。本篇博客将详细介绍如何在 Rust 中使用 Cargo 自定义构建过程,包括自定义构建脚本、

    2024年02月16日
    浏览(39)
  • Rust 使用Cargo

    假设你正在编写一个 Rust 程序,要使用一个名为 `rand` 的第三方库来生成随机数。首先,你需要在 `Cargo.toml` 文件中添加以下依赖项: ```toml [dependencies] rand = \\\"0.7.3\\\" ``` 然后运行 `cargo build`,Cargo 会自动从 crates.io 上下载和安装 `rand` 库。 在你的 Rust 代码中,你可以像这样使用

    2024年02月07日
    浏览(33)
  • Rust之Cargo的使用

    Cargo 是 Rust 的构建系统和包管理器。⼤多数 Rustacean 们使⽤ Cargo 来管理他们的 Rust 项⽬,因为它可以为你处理很多任务,⽐如构建代码、下载依赖库并编译这些库。(我们把代码所需要的库叫做 依赖(dependencies))。 查看cargo版本 我这里可以看到具体的版本好和日期 第一行

    2024年02月03日
    浏览(32)
  • 【Rust】cargo update或者cargo build国内被墙失败解决办法

    cargo build 时下载失败(Mac 10.13.4),提示: error: failed to download from https://crates-io.proxy.ustclug.org/api/v1/crates/actix-codec/0.3.0/download Caused by: [56] Failure when receiving data from the peer (Received HTTP code 500 from proxy after CONNECT) 或者提示: error: failed to download from https://crates-io.proxy.ustclug.org/api/v1

    2023年04月08日
    浏览(67)
  • ubuntu上安装rust和cargo

    第一种方法: 下面一句话就搞定。但特殊情况下(对rust版本有要求的时候)需要使用第2种方法 第2种方法: 不想用apt 运行后,会让你选择方式,选择1,安装。  How to Install Rust and Cargo on Ubuntu Other Linux

    2024年02月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包