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