gpt4 book ai didi

rust - 针对 Cargo 工作区中的特定包

转载 作者:行者123 更新时间:2023-12-03 11:31:37 25 4
gpt4 key购买 nike

是否可以有条件地将 cargo 包包含在工作区中,或者在包 Cargo.toml 文件中告诉 cargo 忽略它们?

假设我有一个带有包的工作区,它应该只在合适的平台上编译。

[workspace]
members = [
"main",
"lib_common",
"lib_linux_only",
"lib_macos_only",
]

所有的 lib 包都是动态库,所以它们中的一些不会在所有平台上构建是可以的(因为主可执行文件会在运行时知道要加载或不加载它们中的哪一个)。但它应该“悄悄地”发生。

在平台特定模块中,我有一个条件编译检查,例如
#[cfg(not(target_os = "linux"))]
compile_error!("This feature requires Linux");

这意味着我无法运行主可执行文件,因为无法构建平台特定的包。在这种情况下,我必须注释掉 mac 上的 linux 包和 linux 上的 mac 包。

最佳答案

似乎现在没有优雅的方法可以做到这一点。 checkout 这个 Unresolved issue跟踪此功能请求。

关于rust - 针对 Cargo 工作区中的特定包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61273927/

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