gpt4 book ai didi

rust - 内联 `cfg_attr(feature = x, path = "file.rs")` doesn' t work

转载 作者:行者123 更新时间:2023-11-29 08:28:22 25 4
gpt4 key购买 nike

根据documentation for cfg_attr , 可以同时执行这两项操作:

#[cfg_attr(windows, path = "windows.rs")]
#[cfg_attr(feature = "magic", sparkles, crackles)]

但是,我在尝试同时使用它们时遇到错误。

// this works
#[cfg(connection = "websocket")]
#[path = "websocket.rs"]
mod protocol;

// file not found for module `protocol`
#[cfg_attr(connection = "websocket", path = "websocket.rs")]
mod protocol ;

最佳答案

cfg 有条件地启用整个项目。 cfg_attr 有条件地启用一个或多个属性

在此:

#[cfg(connection = "websocket")]
#[path = "websocket.rs"]
mod protocol;

整个 protocol 模块只有在条件为真时才会被包含,但是在这个:

#[cfg_attr(connection = "websocket", path = "websocket.rs")]
mod protocol;

protocol 模块始终启用。如果条件为真,编译器将在 websocket.rs 中查找其源代码,但如果条件为假,它将在 protocol.rs 中查找。换句话说,它等同于:

#[cfg(connection = "websocket")]
#[path = "websocket.rs"]
mod protocol;

#[cfg(not(connection = "websocket"))]
mod protocol;

关于rust - 内联 `cfg_attr(feature = x, path = "file.rs")` doesn' t work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58150681/

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