我正在为rust中的编程语言实现编写运行时。我打算在这个运行时链接我生成的编译代码,所以我不想依赖std
来保持二进制文件的小。问题是,当我尝试cargo test
我的运行时,我得到的错误是说std::slice::AsSlice
无法找到,我发现一些谷歌搜索是因为某些测试工具需要std库代码。
有没有人对如何测试此代码有任何建议?有没有办法有条件地包含#![no_std]
编译指示,即在测试时仍然包含std库?我还尝试创建一个单独的测试包,其中包含std库,extern crate
将运行时包放入其中并在那里运行我的测试,但这引入了一系列全新的问题。
答案 0 :(得分:7)
#[cfg(test)]
#[macro_use]
extern crate std;
(#[macro_use]
部分是可选的。)
答案 1 :(得分:1)
您可以通过 cfg_attr 有条件地设置 no_std。
Arrays.asList()