Geo Paul
Geo Paul

Reputation: 1817

gcc -lpthread not working

I have ubuntu 11 installed in my system. I have a c program that uses the pthread library. I get the error Undefined reference to sem_wait() even if I have compiled with the flag -lpthread.

for example:

gcc -lpthread prog.c

The program works fine on other ubuntu installations.

Upvotes: 6

Views: 10618

Answers (1)

Gian
Gian

Reputation: 13945

Try:

gcc -pthread

instead of -lpthread. The difference is significant, I believe. The latter is linking against libpthread, the former is linking against libpthread and a bunch of other things, too!

sem_wait is part of librt, so you could just as well use gcc -lrt, but -pthread does this for you (and everything else as well!).

Upvotes: 12

Related Questions