Seite 1 von 1

Linker Map mit GCC Apple clang version 12.0.0

Verfasst: Sa Jan 23, 2021 6:16 pm
von BabiGuling
Hallo Zusammen,

ich bringe mir momentan selber das C-Programmieren bei, anhand des Buches "C als erste Programmiersprache" und natürlich mit
proggen.org ;) (geniale Seite by the way). Ich bitte um Gnade, ich bin ein blutiger Anfänger :) .
Das Buch ist auf das Programmieren mit Visual Studio ausgelegt, ich habe leider aber gerade nur ein MAC zur Hand. Das vorab mal der Grund warum ich gerade nicht weiterkomme.

Code schreibe ich im TextMate
Compiler nutze ich den Clang version 12.0.0 (Xcode)
MAC Terminal Version 2.11

Zu meinem Problem:

In einer Übung werden Feldgrenzen von Arrays überschritten. Anscheinend fehlt da ja in C die Überprüfung.
Ich soll nun da einen Linker Map (ueberlauf.map) generieren. Wie genau ich das anstellen soll, steht da aber nicht.

Meine Suche im Internet hat mich leider auch nicht wirklich weiter gebracht. Ich habe nur diese Anweisung gefunden, die so
aber nicht funktioniert:

gcc -o uebung6.3 -Wl,-Map -Wl,ueberlauf.map uebung6.3.c

Ich kriege dann diese Fehlermeldung:

ld: unknown option: -Map
clang: error: linker command failed with exit code 1 (use -v to see invocation)


Meine Frage ist nun, ob es irgendwie eine Übersicht der Compilerbefehle gibt, damit ich herausfinden kann, was ich falsch mache?

Liebe Grüsse und schon Danke im Voraus.
Stefan

Re: Linker Map mit GCC Apple clang version 12.0.0

Verfasst: Sa Jan 23, 2021 6:55 pm
von nufan
Hallo :)
BabiGuling hat geschrieben:
Sa Jan 23, 2021 6:16 pm
ld: unknown option: -Map
clang: error: linker command failed with exit code 1 (use -v to see invocation)


Meine Frage ist nun, ob es irgendwie eine Übersicht der Compilerbefehle gibt, damit ich herausfinden kann, was ich falsch mache?
Üblicherweise liefern "<befehl> --help" oder "man <befehl>" Informationen zu den möglichen Parametern. In deinem Fall ist "-Map" auch kein Compiler-Befehl, sondern wird mit "-Wl" an den Linker "ld" weitergegeben. Entsprechend sollte dir "ld --help" oder "man ld" die relevanten Optionen liefern :)

Eine kurze Recherche ergab bei mir "-map" anstelle von "-Map", das kann ich allerdings mangels Apple-Gerät nicht überprüfen.

Re: Linker Map mit GCC Apple clang version 12.0.0

Verfasst: Sa Jan 23, 2021 7:23 pm
von BabiGuling
Hallo nufan,

herzlich Dank für Deine schnelle Antwort. Du hast mir bereits sehr geholfen.
Mit "-map" hat das tatsächlich funktioniert. Mich würde noch interessieren wo Du das gefunden hast, damit ich das auch ein bisschen besser verstehe (und nächstenmal vielleicht auch weiss nach was ich suchen muss).

"Id --help" liefert mir folgendes:

MacBook-Pro uebungenc % Id --help
Id: illegal option -- -
usage: id [user]
id -A
id -F [user]
id -G [-n] [user]
id -M
id -P [user]
id -g [-nr] [user]
id -p [user]
id -u [-nr] [user]

Leider verstehe ich überhaupt nicht, was mir da angezeigt wird. Ich denke ich muss da mein Wissen über
Compiler erst ein bisschen erweitern.

Gruss und nochmals Danke.
Stefan

Re: Linker Map mit GCC Apple clang version 12.0.0

Verfasst: Sa Jan 23, 2021 7:29 pm
von nufan
Der Befehl ist "LD" klein geschrieben und nicht "ID" :)

Ich habe die die Online-Variante von "man ld" hier gefunden:
https://www.unix.com/man-page/osx/1/ld/

Re: Linker Map mit GCC Apple clang version 12.0.0

Verfasst: Sa Jan 23, 2021 7:29 pm
von Xin
Das Programm heißt "ld" L, dann D. :-D

Re: Linker Map mit GCC Apple clang version 12.0.0

Verfasst: Sa Jan 23, 2021 9:56 pm
von BabiGuling
Ja so hat es geklappt ;-).
Ich Danke Euch für Eure Hilfe.