erro sem_open (): “referência indefinida a sem_open ()” no linux (Ubuntu 10.10)

Então, estou recebendo o erro: "referência indefinida a sem_open ()", mesmo que eu tenha incluído o cabeçalho semaphore.h. O mesmo está acontecendo para todas as minhas chamadas de função pthread (mutex, pthread_create, etc). Alguma ideia? Estou usando o seguinte comando para compilar:

g ++ '/home/robin/Desktop/main.cpp' -o '/home/robin/Desktop/main.out'

#include <iostream>
using namespace std;
#include <pthread.h>
#include <semaphore.h>
#include <fcntl.h>

const char *serverControl = "/serverControl";
sem_t* semID;

int main ( int argc, char *argv[] )
{
    //create semaphore used to control servers
    semID = sem_open(serverControl,O_CREAT,O_RDWR,0);
    return 0;
}

questionAnswers(3)

yourAnswerToTheQuestion