一尘不染

sem_open()错误:Linux(Ubuntu 10.10)上的“对sem_open()的未定义引用”

linux

所以我得到了错误:即使我包含了semaphore.h标头,也出现了“对sem_open()的未定义引用”。我所有的pthread函数调用(mutex,pthread_create等)都发生了同样的事情。有什么想法吗?我正在使用以下命令进行编译:

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

阅读 839

收藏
2020-06-07

共1个答案

一尘不染

您需要使用-lpthreadoption 与pthread lib链接。

2020-06-07