将内核映像从 ELF 转换为 PE

发布于 2024-07-16 05:04:44 字数 569 浏览 8 评论 0原文

我正在使用 Msys 来构建我在 Linux 下编写的家庭酿造内核。 Linux 使用 ELF 作为其二进制格式,Msys 使用 PE。 我有源设置,允许 Grub 使用多重引导规范来引导它。 在构建结束时,我得到一些未定义的符号:

init.o:init.S:(.text+0x14): undefined reference to `edata'

main.o:main.c:(.text+0x121): undefined reference to `_alloca'

main.o:main.c:(.text+0x126): undefined reference to `__main'

../../lib\libkern.a(mem.o):mem.c:(.text+0x242): undefined reference to `_end'

../../lib\libkern.a(mem.o):mem.c:(.text+0x323): undefined reference to `_end'

这些似乎是面向 ELF 的符号。 如果有人可以建议我如何在体育界处理这些问题,例如,如果有同等的东西,那将对我有很大帮助!

I am using Msys to build a home brew kernel that I wrote under Linux. Linux used ELF for its binary format and Msys uses PE. I have the source setup to allow it to be booted by Grub using the Multiboot spec. At the end of the build, I get some undefined symbols:

init.o:init.S:(.text+0x14): undefined reference to `edata'

main.o:main.c:(.text+0x121): undefined reference to `_alloca'

main.o:main.c:(.text+0x126): undefined reference to `__main'

../../lib\libkern.a(mem.o):mem.c:(.text+0x242): undefined reference to `_end'

../../lib\libkern.a(mem.o):mem.c:(.text+0x323): undefined reference to `_end'

These appear to be ELF oriented symbols. If anyone can advise me on how these should be dealt with in the PE world, e.g. if there are equivalents, it would help me out a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

差↓一点笑了 2024-07-23 05:04:44

有一些工具可以转换不同的目标文件格式,但它们可能无法满足您的需要。

我假设您需要将编译器 (gcc) 配置为交叉编译器才能为您的 Msys 环境生成正确的格式。

There are tools to convert different object file formats, but they may not do what you need.

I would assume that you need to configure your compiler (gcc) as a cross compiler to genererate the correct format for your Msys environment.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文