Rust:我实际上如何启用'#[cfg(no_global_oom_handling)]'?

svmlkihl  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(156)

因此,贯穿allocstd的方法都标记有#[cfg(not(no_global_oom_handling))],主要是执行分配的方法,其中内存不足的情况通过死机来处理。我整个上午都在研究如何在启用该标记的情况下使用alloc。我已经进入了一些兔子洞,如build-std,但我一无所获。

  • 注 *:我知道其中的含义;这不是应该还是不应该的问题,只是如何启用no_global_oom_handling的问题。

有人知道如何启用这个功能吗?我很惊讶它没有被记录在任何地方,甚至它的跟踪问题。

e1xvtsh3

e1xvtsh31#

您需要传递一个--cfg选项。如果直接使用rustc,则作为参数传递,如果使用Cargo,则作为.cargo/config.toml中的RUSTFLAGSenvironment variablebuild.rustflagsconfiguration option传递。
示例(包括build-std):

RUSTFLAGS="--cfg no_global_oom_handling" cargo +nightly run -Z build-std

另请参阅:How to set cfg options to compile conditionally?

相关问题