如何在不使用std的情况下实现以下示例?
let text = format!("example {:.1} test {:x} words {}", num1, num2, num3);
Run Code Online (Sandbox Code Playgroud)
text具有类型&str和num1,num2并num3具有任何数字类型.
我已经尝试使用numtoa和itoa/dtoa显示数字,但numtoa不支持浮动,itoa不支持no_std.我觉得在字符串中显示一个数字是相当普遍的,我可能会遗漏一些明显的东西.
我有一个 Rust 函数,我想从在 STM32F412 MCU 上运行的C 项目调用,但是我收到了一系列“多重定义”链接器错误。
这是我的 lib.rs:
#![crate_type = "staticlib"]
#![feature(lang_items)]
#![no_std]
#![no_builtins]
#[no_mangle]
pub extern "C" fn hello_world(a: i32, b: i32) -> i32 {
a + b
}
#[lang = "eh_personality"] extern fn eh_personality() {}
#[lang = "panic_fmt"] fn panic_fmt() -> ! { loop {} }
Run Code Online (Sandbox Code Playgroud)
Building withcargo build --release --target=thumbv7em-none-eabihf会生成一个librust.a我作为对象添加到 C Makefile 的对象。
可以在此处找到链接器错误的完整列表。nm将所有冲突函数显示为全局文本符号 (T),此处为完整输出。
C 项目没有普通的标准 C 库,而是使用自定义 libc,这是一个特定于设备的实现,涵盖了标准的一小部分。我可以告诉 Rust 库使用这些函数吗?
通读 Rust …