gpt4 book ai didi

rust - 如何使用 Assembly (NASM) 引导加载程序编译 Rust 内核

转载 作者:行者123 更新时间:2023-11-29 08:29:07 25 4
gpt4 key购买 nike

我有一个用 NASM 编写的简单的两阶段引导加载程序,我想继续使用 Rust 的操作系统内核。

所以我用 Cargo 创建了一个夜间 Rust 项目,并在 src/main.rs 文件中禁用了 std。现在我试图将程序集文件与 Cargo 项目链接起来,但没有成功。

我应该如何编译 NASM 引导加载程序并将其与 Rust 内核链接?

最佳答案

几个小时后,我编译了代码。

解决方案是(如 Michael Petch 所建议的)将汇编代码编译成静态 .o 文件,然后使用 xargo 和自定义目标编译 rust 代码。我将 Rust 代码编译为静态库,而不是二进制文件,因此输出是 .a 目标文件,而不是可执行文件。

然后我使用 gcc 和链接描述文件将目标文件链接在一起并将结果输出为 ELF 文件。之后,我使用 objcopy-O binary 标志将 ELF 文件复制到 .bin 文件。最后,我使用 dd 创建了一个图像文件,我可以从中启动。

关于rust - 如何使用 Assembly (NASM) 引导加载程序编译 Rust 内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55542407/

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