Самый простой способ объединить 2 или более файлов ELF - PullRequest
3 голосов
/ 02 июня 2011

Я работаю над некоторым встроенным кодом для проекта класса, который в настоящее время (в соответствии с требованиями) создает несколько файлов srec и объединяет их.Я хотел бы иметь возможность загрузить этот код в QEMU, но в целом он устраивает только файлы ELF.Какой самый удобный способ объединить оригинальные файлы ELF вместо srecs.Также приемлем, метод для преобразования srec обратно в ELF и обеспечения возможности загрузки результирующего файла (кажется, что при этом objcopy создает довольно испорченные файлы (никакой архитектуры среди других). Инструменты должны быть способны работать с двоичными файлами m68k, ноХост-система обычная x86.

Ответы [ 4 ]

2 голосов
/ 10 июня 2011

Пожалуйста, посмотрите на библиотеку ELFIO .Он содержит примеры WriteObj и Writer.Используя библиотеку, вы сможете создавать двоичные файлы ELF на разных хост-платформах.

0 голосов
/ 04 декабря 2017

Легко ... давайте предположим: ac и bc

gcc a.c -c -o a.o
gcc b.c -c -o b.o
ld -r a.o b.oc -o c.o

co теперь содержат как ao, так и bo как перемещаемый файл ELF.

- Ivan

0 голосов
/ 30 июня 2011

Я обнаружил, что самым простым решением моей первоначальной проблемы было добавить загрузку SREC в qemu.Я уже модифицирую исходный код, чтобы добавить поддержку платы, так что поддержка SREC не так уж много дополнительной работы.Я нашел код на github от кого-то, кто уже сделал это, и использовал его в качестве основы для моей работы.

https://github.com/MegabytePhreak/qemu-mcf5307/commit/d3bceb911893b37b2524d6e804bac96691d4d33c

0 голосов
/ 02 июня 2011

Возможно, используете ваш компоновщик?

Файл srec содержит только загружаемый связанный двоичный файл, файл elf содержит дополнительные метаданные, которые теряются при генерации двоичного файла, поэтому обращение к elf можетневозможно, особенно если эльфа нужно переместить.

...