小编jlb*_*740的帖子

即使在使用 no_std 的情况下,如何解决为什么在 rust 标准库符号中的 cargo/rustc 链接?

我正在尝试创建一个嵌入友好的可执行文件(占用空间小且不依赖于 Rust 标准库),它使用一个已经支持no_std构建的库 (wasmi) 。Rust 的新手,我只是将说明拼凑在一起,但其要点似乎是按照步骤操作

对于可执行文件:

#![no_std]
#![no_main]

use core::panic::PanicInfo;

/// This function is called on panic.
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {
    loop {}
}

#[no_mangle]
pub extern "C" fn _start(_argc: isize, _argv: *const *const u8) -> ! {
    interpret(_argc, _argv);
    loop {}
}
Run Code Online (Sandbox Code Playgroud)

即:

  • 包括 #![no_std]
  • 定义我们的条目(不是main因为我们没有调用它的运行时)
  • 并定义一个恐慌处理程序,因为不包含 Rust 标准库来为我们定义它。

我要编译的 Cargo 文件如下所示:

[package]
 name = "driver"
 version = "0.1.0"
 edition = "2018"

[dependencies.wasmi]
 path = "../../github_dev/wasmi" 
 features = ["core"] …
Run Code Online (Sandbox Code Playgroud)

rust rust-cargo

5
推荐指数
1
解决办法
694
查看次数

标签 统计

rust ×1

rust-cargo ×1