• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> 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!