Rust 如何有条件地启用基于cfg的生锈功能?

Rust 如何有条件地启用基于cfg的生锈功能?,rust,conditional-compilation,Rust,Conditional Compilation,我想用#![feature(custom_test_frameworks)],但如果可能,只能通过有条件地启用它[cfg(not(target_os=“custom_os_name”)]。我仍然希望可以选择使用rusts libtest直接在主机系统上运行一些测试,但显然不允许我通过cfg修改功能: 错误消息: 注意:内部属性,如`#![no_std]`,对包含它们的项目进行注释, 和通常位于源文件的开头。外部属性,比如 `#[测试]`,对其后面的项目进行注释。 是否有任何其他方法可以有条件地

我想用
#![feature(custom_test_frameworks)]
,但如果可能,只能通过
有条件地启用它[cfg(not(target_os=“custom_os_name”)]
。我仍然希望可以选择使用rusts libtest直接在主机系统上运行一些测试,但显然不允许我通过
cfg
修改功能:

错误消息:

注意:内部属性,如`#![no_std]`,对包含它们的项目进行注释,
和通常位于源文件的开头。外部属性,比如
`#[测试]`,对其后面的项目进行注释。
是否有任何其他方法可以有条件地启用“内部属性”

您可以使用
[cfg\u attr]
基于其他一些功能应用属性

在您的情况下,您可以执行以下操作:

#![cfg_attr(
    not(target_os = "custom_os_name"),
    feature(custom_test_frameworks)
)]