【问题标题】:gcc -lpthread not workinggcc -lpthread 不工作
【发布时间】:2012-01-06 01:46:23
【问题描述】:

我的系统中安装了 ubuntu 11。我有一个使用 pthread 库的 c 程序。 即使我使用标志-lpthread 编译,我也会收到错误Undefined reference to sem_wait()

例如:

gcc -lpthread prog.c

该程序在其他 ubuntu 安装上运行良好。

【问题讨论】:

  • 你能尝试用 pthread 调用编译其他东西吗?
  • 链接顺序很重要。图书馆只能在最后。

标签: c++ c multithreading gcc operating-system


【解决方案1】:

试试:

gcc -pthread

而不是-lpthread。我相信,差异是显着的。后者链接libpthread,前者链接libpthread和其他一些东西!

sem_wait 是 librt 的一部分,因此您也可以使用 gcc -lrt,但 -pthread 会为您执行此操作(以及其他所有内容!)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 2011-10-14
    相关资源
    最近更新 更多