所以我得到了错误:即使我包含了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; }
您需要使用-lpthreadoption 与pthread lib链接。
-lpthread