gpt4 book ai didi

rust - 以不同的名称重新导出模块

转载 作者:行者123 更新时间:2023-12-03 11:45:16 26 4
gpt4 key购买 nike

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

1年前关闭。




Improve this question




我想编写一个跨平台库,因此我编写了以下代码

pub mod common;
#[cfg(target_os = "Linux")]
pub mod process_linux;

#[cfg(target_os = "Windows")]
pub mod process_windows;
但现在我想在名称进程下重新导出模块。
这很容易吗?我想我将来可能需要阅读更多关于模块和命名空间的信息,我尝试了以下内容:
pub mod process {
#[cfg(target_os = "Linux")]
pub use process_linux::*;

#[cfg(target_os = "Windows")]
pub use process_windows::*;
}
但它仍然没有像我想要的那样工作,也许有人有答案。
编辑:
例如,我希望能够在不同的机器上运行相同的代码,但目前导入不起作用,我必须改用 process_linux:
// doesnt work
use tryolib::process::*;
// works
use tryolib::process_linux::*;
好的,现在我尝试了:
#[cfg(target_os = "Linux")]
mod process_linux;

#[cfg(target_os = "Windows")]
mod process_windows;

#[cfg(target_os = "Linux")]
pub use process_linux as process;

#[cfg(target_os = "Windows")]
pub use process_windows as process;

最佳答案

你只是有一个错字,操作系统必须是小写的(如 reference states )。以下代码有效( playground ):

#[cfg(target_os = "linux")]
pub mod process_linux {
pub type T = ();
}

#[cfg(target_os = "linux")]
use process_linux as process;

fn main() {
let _: process::T = ();
}

关于rust - 以不同的名称重新导出模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62515173/

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