Ich habe ein Problem mit Link-Zieldateien auf einem Mac OS X. Das Problem wird zurückverfolgt, Hier ist mein C Hallo Weltprogramm
%Vor%// Kompiliere mit gcc (clang LLVM Compiler auf Mac)
%Vor%Die Ausgabedatei ist hello.o Verknüpfen Sie mit gcc und führen Sie die ausführbare Datei ist
%Vor%Jetzt muss ich das Mac-Linker-Programm ld oder Ld verwenden, um die Zieldateien anstelle von gcc zu verknüpfen. Welche Argumente sollte ich in diesem Fall an das Programm ld weitergeben, damit das Programm läuft? Ein einfacher Durchlauf des Objektdateinamens, d. H.
$ ld hello.o
ergibt
%Vor%Also, welche anderen Dateien muss ich für Link- oder Architekturinformationen angeben, die ich angeben muss? Vielen Dank.
Okay, ich hatte diese Frage auch schon. Ja, der Grund für die Linkfehler ist, dass Sie alle magischen Argumente, die gcc tut, füttern müssen. Der einfachste Weg, diese zu entdecken, besteht darin, die Option -v
auf gcc
aufzurufen, um alle in den Kompilierungsstufen ausgeführten Befehle anzuzeigen. In deinem Fall führe:
... dessen Ausgabe auf meinem System mit der Zeile endet:
%Vor% Ich weiß nicht, was das Programm collect2
ist, aber wenn Sie all diese Argumente an ld
füttern, sollte es genauso funktionieren (zumindest auf meinem System).