Dependencies 如何使本地依赖依赖依赖于Cargo中的特性?

Dependencies 如何使本地依赖依赖依赖于Cargo中的特性?,dependencies,rust,rust-cargo,Dependencies,Rust,Rust Cargo,考虑到这个在子目录中使用本地板条箱的小型库,根据是否启用了某个功能,我如何使其中一个依赖项成为可选的 [package] name = "image_load" description = "Small wrapper for image reading API's." version = "0.1.0" [features] default = ["use_png"] [dependencies] [dependencies.image_load_ppm] path = "ppm"

考虑到这个在子目录中使用本地板条箱的小型库,根据是否启用了某个功能,我如何使其中一个依赖项成为可选的

[package]
name = "image_load"
description = "Small wrapper for image reading API's."
version = "0.1.0"

[features]

default = ["use_png"]

[dependencies]

[dependencies.image_load_ppm]
path = "ppm"

# How to make this build _only_ when 'use_png' feature is enabled?
[dependencies.image_load_png]
path = "png"
当我阅读时,这显示了如何拥有可选的外部依赖项。在上面的例子中,我使用的是一个本地子目录,我想根据一个特性构建它,或者不构建它


如何使
image\u load\u png
仅在启用
use\u png
功能时生成。

这可以通过添加以下内容来完成:

[package]
name = "image_load"
version = "0.1.0"
description = "Small wrapper for image reading API's."

[features]

default = ["use_png"]
use_png = ["image_load_png"]  # <-- new line

[dependencies]

[dependencies.image_load_ppm]
path = "ppm"

[dependencies.image_load_png]
path = "png"
optional = true  # <-- new line
[软件包]
name=“图像加载”
version=“0.1.0”
description=“用于图像读取API的小包装。”
[专题]
默认值=[“使用\u png”]

使用_png=[“image_load_png”]#标记为可选双as功能的依赖项。但是,如果您想要一个具有不同名称的功能,则必须

例如,如果将依赖项
image\u load\u png
标记为可选,则仅当启用了
image\u load\u png
功能时才会编译
image\u load\u png
。您可以像测试任何其他功能一样,在Rust代码中测试正在启用的功能

[dependencies.image_load_png]
path = "png"
optional = true

您可以查看。我读了这一页,但没有看到这方面的示例。它在注释下,列出了所有可选的依赖项。@Shepmaster,是的,我读过这个。不同之处在于我的依赖关系是本地的,而不是可选的外部板条箱,语法上的差异让我感到困惑。更新问题以明确这一点。
[dependencies.image_load_png]
path = "png"
optional = true