gpt4 book ai didi

windows - 如何根据操作系统系列具有不同的依赖关系

转载 作者:可可西里 更新时间:2023-11-01 12:31:35 29 4
gpt4 key购买 nike

我正在编写一个具有平台特定依赖项的跨平台库,一个用于类 unix 平台,一个用于 Windows。这些箱子只能在特定平台上编译,因此我不能正常地将它们全部添加到依赖项下。

在实际的 rust 代码中,我使用 cfg 属性,如 #[cfg(unix)] 为特定平台编译特定代码,我想做类似的事情在 Cargo.toml 或构建脚本中,用于依赖项。目前,我正在使用像这样的目标三元组:

[target.i686-unknown-linux-gnu.dependencies.crate1]
git = repo1
[target.x86-unknown-linux-gnu.dependencies.crate1]
git = repo1
[target.x86_64-unknown-linux-gnu.dependencies.crate1]
git = repo1

[target.i686-pc-windows-gnu.dependencies]
crate2 = "*"
[target.x86-pc-windows-gnu.dependencies]
crate2 = "*"
[target.x86_64-pc-windows-gnu.dependencies]
crate2 = "*"

但是,这个列表远非详尽无遗。我不关心体系结构或 ABI,只关心操作系统系列,因此,如果我要匹配每个类 unix 目标三元组,列表会变得很长。

有什么方法可以使用特定的依赖项,仅由运行 cargo 的平台的操作系统系列决定?像这样的东西:

[target.family.unix.dependencies]
abc-sys = "*"
def = "*"

[target.family.windows.dependencies]
abc-win = "*"

最佳答案

据我阅读文档 here ,这现在应该可以工作了:

[target.'cfg(unix)'.dependencies]
abc-sys = "*"
def = "*"

[target.'cfg(windows)'.dependencies]
abc-win = "*"

关于windows - 如何根据操作系统系列具有不同的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29854912/

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