sem_open() error: “no definido referencia a sem_open()” en linux (Ubuntu 10.10)

Así que estoy recibiendo el error: “no definido referencia a sem_open()” a pesar de que he de incluir el semáforo.h encabezado. Está ocurriendo lo mismo para todos mis pthread llamadas de función (mutex, pthread_create, etc). Los pensamientos? Estoy usando el siguiente comando para compilar:

g++ ‘/home/robin/Desktop/main.cpp’ -o ‘/home/robin/Desktop/main.’

#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;
}

OriginalEl autor Robin | 2011-02-06

3 respuestas

  1. 19

    Usted necesita el enlace con pthread lib, utilizando -lpthread opción.

    OriginalEl autor Vlad H

  2. 2

    La opción de trabajo en Ubuntu es -lpthread. Pero si usted trabaja en suse o en otros sistemas la opción correcta es -lrt. También el libro Linux Programmin Interfaz menciona -lrt como la opción correcta.

    OriginalEl autor Sanjay Bhosale

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *