12

Ich habe einen Compiler für C geschrieben, die Byte-Code ausgibt. Der Grund dafür war, Anwendungen für eine eingebettete Plattform schreiben zu können, die auf mehreren Plattformen läuft.Wie schreibe ich einen Linker

Ich habe den Compiler und den Assembler.

Ich muss einen Linker schreiben, und bin fest.

Das Objektformat ist ein benutzerdefiniertes, das um den Byte-Code-Interpreter herum entworfen wurde, so dass ich keine vorhandenen Linker wirklich verwenden kann.

Meine größte Hürde ist, wie Sie den Objektcode organisieren, um die verknüpfte Binärdatei auszugeben. Dynamische Verknüpfung ist zu diesem Zeitpunkt nicht erforderlich. Ich muss statische Verknüpfung zunächst arbeiten.

Antwort

4

Ich zweite das Linkers und Loaders Buch. Sie geben an, dass Ihr Objektformat ein benutzerdefiniertes Format ist. Wenn Sie das Format unter Ihrer Kontrolle haben, können Sie das ELF-Format mit Ihrem Bytecode als neue Maschinenarchitektur, la x86, SPARC, ARM usw. verwenden. Die GNU binutils-Quellen sind ausreichend formbar, um Ihre "Architektur" zu integrieren. .

12

Ian Lance Taylor, einer der Hauptentwickler des Gold-Linkers (jetzt Teil von Binutils), veröffentlichte eine Reihe von Blogs darüber, wie Linker funktionieren. Sie können es here finden.

Verwandte Themen