gcc -lpthread not working

10,336

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!).

Share:
10,336
Geo Paul
Author by

Geo Paul

Updated on June 18, 2022

Comments

  • Geo Paul
    Geo Paul almost 2 years

    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.

    • DanZimm
      DanZimm over 12 years
      can you try compiling something else with pthread calls?
    • Kerrek SB
      Kerrek SB over 12 years
      The linking order matters. Libraries have to come at the end only.