将内核映像从 ELF 转换为 PE
我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有一些工具可以转换不同的目标文件格式,但它们可能无法满足您的需要。
我假设您需要将编译器 (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.