Sign in to follow this  
zenzip

[GCC] compilare con semafori (ld: library not found for -lrt)

Recommended Posts

Ciao a tutti ho un MacBook 7,1 con Leopard 10.6.4 ed Xcode 3.2.2.

Quando vado a compilare da terminale un file .c contenente operazioni su semafori, ottengo il seguente errore:

" ld: library not found for -lrt

collect2: ld returned 1 exit status "

nello specifico per compilare da terminale uso gcc nomefile.c -o nomefileoutput -lrt(la libreria da linkare per i semafori).

All'interno del codice ovviamente faccio "#include <semaphore.h>"

Avete idea di come risolvere? sono uno studente di informatica ed è fondamentale poter compilare sorgenti C con semafori, non posso installare nativamente nessuna distro Linux a causa di una incompatibilità del controller SATA del MacBook 7,1 (sto aspettando che nel nuovo kernel ci sia il supporto per questo controller), e a giorni ho un esame:confused:.

HELP ME !:confused:

Share this post


Link to post
Share on other sites

hai provato SENZA usare -lrt ?

/*$ gcc --versioni686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646) (dot 1)$ gcc main.c$ ./a.out 0xffffffffffffffff;*/#include <semaphore.h>#include <stdio.h>int main (void){	sem_t * aSem = sem_open("test", O_EXCL);	printf ("%p;\n", aSem);	return 0;	}
;-)

Share this post


Link to post
Share on other sites

Già ;-)

Scusa l'ignoranza ma non sarebbe come compilare un programma multithread senza linkare -lpthread? :o

$ man pthreadPTHREAD(3)               BSD Library Functions Manual               PTHREAD(3)NAME     pthread -- POSIX thread functions...INSTALLATION     The default system libraries include pthread functions.  No additional libraries or CFLAGS are necessary to use this API.
;-)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this