gpt4 book ai didi

rust - 防 rust crate 功能需要单独安装吗?

转载 作者:行者123 更新时间:2023-12-03 11:27:54 26 4
gpt4 key购买 nike

我很难理解Rust toml中的功能条目。
假设我有一个依赖项(在本例中为sqlx)说

sqlx = { version = "0.4.0-beta.1", default-features = false, features = [ "runtime-tokio", "macros", "json", "mysql" ] }
Rust的书中提到 Features:

Cargo supports features to allow expression of:

  • conditional compilation options (usable through cfg attributes);
  • optional dependencies, which enhance a package, but are not required; and
  • clusters of optional dependencies, such as postgres-all, that would include the postgres package, the postgres-macros package, andpossibly other packages (such as development-time mocking libraries,debugging tools, etc.).

A feature of a package is either an optional dependency, or a set ofother features.


在我的情况下是什么意思?我是否必须安装,例如输入在我的Cargo.toml中,“runtime-tokio”作为附加依赖项还是sqlx已经随“runtime-tokio”一起提供了?
顺便说一句,cfg属性是什么?

最佳答案

每当您为依赖项指定功能时,您都在要求Cargo以不同的方式编译该依赖项,这种方式是箱子选择提供的。通常,但并非总是如此,该功能的名称与其可能依赖的 crate 相同(例如提供特征实现)。

Do I have to install, i.e. enter e.g. "runtime-tokio" as an additional dependency in my Cargo.toml or does sqlx already come with "runtime-tokio"?


不; Caroji.toml for sqlx将负责为任何功能组合指定所需的依赖项。

what are cfg-attributes?


属性是用 #[attribute_name_here]编写的东西,例如 #[test]#[derive(Debug)]The #[cfg(...)] attribute允许条件编译,即告诉编译器假装源代码的某些部分不存在。
通常,功能有两个作用:
  • 它启用可选的依赖项(这在Cargo.toml中指定,可以在the [features] section中显式指定,也可以由与 crate 依赖项具有相同名称的功能隐式指定)。
  • 通过条件编译,使用该依赖项的条板箱中的代码将被编译(而不是忽略)。
  • 关于rust - 防 rust crate 功能需要单独安装吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64504415/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com