Kolejność parametrów gcc / g ++

Właśnie skompilowałem chironfs na moim nowym serwerze ubuntu 12.10 i otrzymałem następujący błąd:

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'

błąd pthread mówi mi, że brakuje -lpthread, ale błąd bezpiecznika jest dość dziwny, ponieważ używa się -lfuse

znalazłem rozwiązanietutaj co sugeruje umieszczanie bibliotek po plikach obiektowych

więc usunąłem -lfuse i dodałem -lfuse -lpthread na samym końcu linii

teraz kompiluje się bez błędu i wygląda na to, że tak powinno być: biblioteka po plikach obiektowych

moje pytanie brzmi: dlaczego kolejność parametrów jest odpowiednia dla gcc / ld? Myślałem, że gcc po prostu analizuje params jak każda inna aplikacja i może przekazać niezbędne parametry do ld lub innego

ogólnie: każdy zna fakty lub wskazówki dotyczące porządkowania parametrów gcc i może trochę informacji o tym, dlaczego jest to potrzebne w ten sposób?

dzięki

questionAnswers(2)

yourAnswerToTheQuestion