当前位置: 首页 > 面试题库 >

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

杨凯旋
2023-03-14
问题内容

所以我得到了错误:即使我包含了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链接。



 类似资料:
  • 问题内容: 我在使用C ++(Eclipse)的Linux中工作,并且想要使用一个库。Eclipse显示了一个错误: 你知道解决方案吗? 这是我的代码: 问题答案: 您必须针对libdl进行链接,添加 -ldl 到您的链接器选项

  • 问题内容: 我可以毫无问题地创建一个共享库。我创建了libcbitcoin.so(没有错误),并尝试通过可执行文件以及OpenSSL库与之链接。我使用以下命令: bin目录是库的位置。obj目录包含我希望链接到可执行文件的目标文件。在命令中,我使用-L,-l和- rpath选项,我认为这是在Linux中进行链接所需的全部。由于出现类似以下的错误,看来我错了: 在库中找到CBNewByteArray

  • 问题内容: 我对Ubuntu相当陌生,但似乎无法使它正常工作。它可以在我的学校计算机上正常工作,我不知道自己在做什么。我检查了 usr / include 和time.h就好了。这是代码: 我正在使用CodeBlocks作为我的IDE来进行构建和运行。任何帮助都会很棒,谢谢。 问题答案: 添加到g ++命令行的末尾。该链接在librt.so“实时”共享库中。

  • 这是我的HTML代码,我试图将div中输出的内容转换成可下载的pdf文件。 我在控制台上得到这个错误: “未捕获引用错误:未定义jsPDF” 我不确定我做错了什么,我甚至在脚本标签中添加了。。。

  • 我想知道有没有人能帮我解决这个问题--我才刚接触C++,它给我带来了很多麻烦。 我正在尝试制作相对简单的套牌和卡类对象。 错误出现在“deck.cpp”中,它声明了一个卡片数组,然后我尝试用卡片对象填充数组。它说有对、和的未定义引用。 卡d.h Card.cpp

  • 问题内容: 我有两个Slackware Linux系统,在这些系统上POSIX信号调用失败,并且errno设置为38。下面将重现示例代码(该代码在CentOS / RedHat上运行良好)。 是否有任何可能导致此问题的内核或系统配置选项?还有其他建议吗? 出现问题的系统是Slackware 10.1.0内核2.6.11 /lib/librt-2.3.4.so /lib/libpthread-0.1