Преобразование образа ядра из ELF в PE - PullRequest
1 голос
/ 04 апреля 2009

Я использую 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, например, если есть эквиваленты, это мне очень поможет!

1 Ответ

0 голосов
/ 06 апреля 2009

Существуют инструменты для преобразования различных форматов объектных файлов, но они могут не выполнять то, что вам нужно.

Я бы предположил, что вам нужно сконфигурировать ваш компилятор (gcc) как кросс-компилятор для генерации правильного формата для вашей среды Msys.

...