导入自己的标准库时如何避免导入冲突?

时间:2018-03-18 02:52:45

标签: rust

我正在尝试导入自己的std库,但是当我使用crates依赖项进行编译时,我遇到了这个问题:

error: duplicate lang item in crate `std`: `f32`.
  |
  = note: first defined in crate `my_std`.

error: duplicate lang item in crate `std`: `f64`.
  |
  = note: first defined in crate `my_std`.

error: duplicate lang item in crate `std`: `panic_fmt`.
  |
  = note: first defined in crate `my_std`.

我试图通过编写extern crate my_std as std

来覆盖该库

解决这个问题的简单方法是什么?而不是为所有依赖项修改它?

1 个答案:

答案 0 :(得分:4)

您可以使用crate root中的#![no_std]属性编译没有Rust标准库的代码。请注意,使用可执行文件(而不是库)执行此操作时会有一些注意事项,并且您需要manually include libc来获取二进制文件。