多线程linux报错undefined reference to `pthread_create‘

练习多线程时碰到的一个编译报错问题

先上一段多线程的代码,文件名A12_4.cpp

vector<string> ptr;
void *thread(void *vargp) {
    long myid = (long)vargp;
    static int cnt = 0;
    cout << '[' << myid << "]: " << ptr[myid] << " (cnt = " << ++cnt << ")" << endl;
    return nullptr;
}
int main(int argc, char *argv[]) {
   long i;
   pthread_t tid;
   vector<string> msgs = {
      "hello from foo",
      "hello from bar"
   };
   ptr = msgs;
   for (i = 0; i < 2; ++i) {
      pthread_create(&tid, nullptr, thread, (void*)i);
   }
   pthread_exit(nullptr);
}

在命令行输入g++ A12_4.cpp -o ss时报错undefined reference to `pthread_create’

查阅资料后得到答案:
For Linux the correct command is:

gcc -pthread -o term term.c

In general, libraries should follow sources and objects on command line, and -lpthread is not an “option”, it’s a library specification. On a system with only libpthread.a installed,

c++中只需要把gcc改称g++即可

g++ -pthread -o term A12_4.cpp

参考网页:Undefined reference to pthread_create in Linux

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值