Wie verlinke ich eine kompilierte Objektdatei (hello.o) mit ld unter Mac OS X?

8

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.

    
SkyOasis 02.12.2013, 05:42
quelle

2 Antworten

5

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:

%Vor%

... 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).

    
jrodatus 02.12.2013, 06:05
quelle
7

Als Referenz sind meine vollständigen Linker-Optionen

%Vor%     
SkyOasis 02.12.2013 18:24
quelle

Tags und Links