Ich mache wahrscheinlich etwas falsch, ein Neuling zu sein. Könnten Sie mir bitte helfen?"Datei nicht erkannt" bei der Verwendung des GNU-Linkers
ich ein einfaches Hallo Welt Programm in C geschrieben haben genannt hello.c und lief den folgenden Befehl ein:
gcc -S hello.c
Das hello.s
produziert. Dann habe ich die Datei mit GNU Assembler, as
:
as hello.s
, die ein nicht-ausführbaren a.out
erzeugt, die noch verbunden werden muss, verstehe ich?
ich versuche, es zu verknüpfen, indem ld
verwenden, etwa so:
ld a.out
Aber erhalten folgende Fehlermeldung:
a.out: file not recognized: File truncated
Und ld
löscht meine Datei.
Dies ist ein x86 Ubuntu-System. Was mache ich falsch? Danke vielmals!
Um Ihre Frage zu beantworten, ich vermute, er versucht Assembly zu lernen ... – Zifre
Ich realisiere das, aber ich möchte als und ld unabhängig von gcc verwenden. Ich lerne x86 Assembly. Die Ausgabe von gcc -S hilft mir zu sehen, wie gcc verschiedene C-Programme in Assembly implementiert. Dann kann ich mit diesem Assembler-Code modifizieren und spielen und ihn schließlich assemblieren und verknüpfen, indem ich as und ld benutze. Ich realisiere, dass gcc diese Dateien für mich zusammenstellen und verlinken kann, aber es verwendet nur as und ld in meinem Namen. Ich möchte als und ld direkt verwenden. –