我正在使用Msys来构建我在Linux下编写的自制内核。 Linux使用ELF作为二进制格式,Msys使用PE。我有源设置允许Grub使用Multiboot规范启动它。在构建结束时,我得到一些未定义的符号:
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的符号。如果有人可以告诉我如何在PE世界中处理这些问题,例如如果有相应的东西,它会帮助我很多!
答案 0 :(得分:0)
有些工具可以转换不同的目标文件格式,但它们可能无法满足您的需求。
我认为您需要将编译器(gcc)配置为交叉编译器,以便为Msys环境生成正确的格式。