gcc / g ++ - Parameterreihenfolge

Ich habe gerade chironfs auf meinem neuen Ubuntu 12.10 Server kompiliert und die folgende Fehlermeldung erhalten:

gcc  -Wall -W -Wmissing-prototypes -g -O2 -DFUSE_USE_VERSION=25 -D_FILE_OFFSET_BITS=64 -I/usr/local/include -g -O2 -lm -lfuse  -o chironfs chironfs.o chiron-conf.o chirondbg.o chironfn.o  
chironfs.o: In function `chiron_init':
/root/chironfs-1.1.1/src/chironfs.c:2000: undefined reference to `pthread_create'
chironfs.o: In function `get_rights_by_name':
/root/chironfs-1.1.1/src/chironfs.c:452: undefined reference to `fuse_get_context'

der pthread-fehler sagt mir, dass -lpthread fehlt, aber der sicherungsfehler ist irgendwie komisch, weil -lfuse verwendet wird

Ich habe eine Lösung gefundenHier das schlägt vor, Bibliotheken nach Objektdateien zu setzen

Also habe ich -lfuse entfernt und -lfuse -lpthread ganz am Ende der Zeile hinzugefügt

Jetzt wird es fehlerfrei kompiliert und es sieht so aus, als ob es so wäre: Bibliothek nach Objektdateien

meine frage ist: warum ist die parameterreihenfolge für gcc / ld relevant? ich habe gelernt, dass gcc die params wie jede andere anwendung analysiert und die notwendigen params an ld oder so weiterleitet

generell: kennt jemand fakten oder tipps zur gcc-parameterbestellung und vielleicht ein bischen hintergrundinformationen darüber, warum es so gebraucht wird?

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage