[Linux-Biella] PTT

Raffaele Salmaso raffaele.salmaso a gmail.com
Ven 2 Giu 2006 22:23:33 CEST


Federico Pistono ha scritto:
> Ma PTT sta per POSIX Thread Trace Toolkit (PTT) :-PPP
al massimo sarà PTTT

> Scherzi a parte, sto cercando di cosare in c, ma mi da un errore sui
> semafori. Ho googlato un po' e sembra che mi manchi la sopracitata
> lib, io ho installato tutto il possibile da un apt-cache search che
> riguardasse le POSIX Threads, epppure:
> 
> ¤ gcc sem_sleepingbarber.c
> /tmp/cc64csnL.o: In function `barbers':
> sem_sleepingbarber.c:(.text+0x74): undefined reference to `sem_wait'
> sem_sleepingbarber.c:(.text+0xc4): undefined reference to `sem_post'
> sem_sleepingbarber.c:(.text+0xf4): undefined reference to `sem_post'
> sem_sleepingbarber.c:(.text+0x124): undefined reference to `sem_wait'
> sem_sleepingbarber.c:(.text+0x154): undefined reference to `sem_wait'
> sem_sleepingbarber.c:(.text+0x1c4): undefined reference to `sem_post'
> sem_sleepingbarber.c:(.text+0x1f4): undefined reference to `sem_post'
> /tmp/cc64csnL.o: In function `customers':
> sem_sleepingbarber.c:(.text+0x27c): undefined reference to `sem_wait'
> sem_sleepingbarber.c:(.text+0x2d0): undefined reference to `sem_post'
> sem_sleepingbarber.c:(.text+0x31c): undefined reference to `sem_post'
> sem_sleepingbarber.c:(.text+0x34c): undefined reference to `sem_wait'
> sem_sleepingbarber.c:(.text+0x39c): undefined reference to `sem_post'
> /tmp/cc64csnL.o: In function `main':
> sem_sleepingbarber.c:(.text+0x41c): undefined reference to `sem_init'
> sem_sleepingbarber.c:(.text+0x45c): undefined reference to `sem_init'
> sem_sleepingbarber.c:(.text+0x49c): undefined reference to `sem_init'
> sem_sleepingbarber.c:(.text+0x52c): undefined reference to `pthread_create'
> sem_sleepingbarber.c:(.text+0x564): undefined reference to `pthread_create'
> sem_sleepingbarber.c:(.text+0x574): undefined reference to `pthread_join'
> sem_sleepingbarber.c:(.text+0x5a4): undefined reference to `pthread_join'
> sem_sleepingbarber.c:(.text+0x5c8): undefined reference to `sem_destroy'
> sem_sleepingbarber.c:(.text+0x5d4): undefined reference to `sem_destroy'
> collect2: ld returned 1 exit status
a quanto pare non trova delle definizioni
il dottore consiglia:
1) hai installato correttamente le librerie e gli header?
2) hai passato al linker i parametri corretti? -l -L?
3) stai mettendo in ordine corretto le librerie da passare al linker?
3a) ocio che il linker che usa linux è una chiavica: fa passare di 
tutto, soprattutto anche reference multipli - non è il tuo attuale caso, 
ma tantè te lo dico lo stesso
4) non hai dichiarato quanto dovevi (non so se si applica in questo 
preciso caso, sai tu)
5) altro non mi viene in mente fino a che non torna la mia sfera di 
cristallo dal tagliando

comunque un consiglio: prima impara il c, poi impara ad usare gli eventi 
in modo asincrono e a lasciare a casa i thread ;)

-- 
()_() | NN KAPISCO XK' CELLHAVETE T'ANNTO CN ME SL         | +----
(o.o) | XK' SKRIVO 1 P'HO VELLOCE MA HALL'ORA DITTELO      | +---+
'm m' | KE SIETE VOI K CI HAVVETE PROBBLEMI NO PENSATECI   |  O  |
(___) | HE SENZA RANKORI CIAOOOO                           |
                    raffaele punto salmaso at gmail punto com


Maggiori informazioni sulla lista Linux