• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

gcc auf der Kommandozeile

lodger

Normande
Registriert
06.09.05
Beiträge
578
Hallo!

Eine Frage: wenn ich (aus Gewohnheit) lieber ganz klassisch auf der Kommandozeile mit dem gcc ein Programm kompilieren und gegen eine bestimme Library (hier: SDL) linken will, wie übergebe ich dann die richtigen Parameter für das Header- und Library Verzeichnis an den gcc?

Unter Linux wäre das z.B.: gcc -g -o a.out -I /usr/include/SDL -L /usr/lib/SDL -lSDL code1.c

Was ist unter OS X hier richtig und *wo* finde ich da u.U. etwas mehr Doku (gcc unter OS X auf der Kommandozeile) zu?
 

lodger

Normande
Registriert
06.09.05
Beiträge
578
Schon klar, soweit war ich auch. Aber mit den -I bzw. dem -L Parameter verweise ich ja auf die Pfade, in denen z.B. eine libSDL.so bzw. deren Header liegen (/usr/lib oder /usr/local/include). Unter OS X gibbet dat in der Form aber nicht. Und ich denke mal, das die OS X Libs sicher auch etwas anders benamst werden. In jedem Fall bricht o.g. Compile mit einem "unresolved symbols" Fehler ab. Warum? Weil der Linker die SDL Library nicht findet. Also da ist die schon, aber der Compiler weiß nicht wo sie liegt ...

Hmm ...
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
shared Libraries unter Mac OS X haben IMHO normalerweise die Endung "dylib", nicht "so". Und doch, die -l und -L Parameter zu gcc funktionieren systemunabhängig, d.h. mit -L musst Du den Pfad zur Bibliothek angeben. Lass eventuell mal das Leerzeichen nach -L weg.

Zum Thema ist eventuell der Rosetta Stone for Unix ganz interessant...
 

lodger

Normande
Registriert
06.09.05
Beiträge
578
Dakeschön!

Dankeschön für die Info und den Link. Das sollte erstmal weiterhelfen!