【发布时间】:2014-03-27 16:30:33
【问题描述】:
我正在将一个 Windows 库移植到 linux。我需要使用定时加入来等待线程加入特定的超时时间。
当我在 Linux 上编译库时,我收到了警告
函数的隐式声明 - pthread_timedjoin_np
我已包含 pthread.h 并已使用 -lpthread 链接进行编译。我知道 pthread_timedjoin_np 是一个非标准的 GNU 函数。该函数首次出现在 glibc 的 2.3.3 版本中。在 BCD v6 中的某个地方。
我什至检查了 Linux 的 Man Page,但没有得到任何帮助。如何避免此警告?有什么帮助吗?
Edit-1: 我的系统是 RedHat 5。
【问题讨论】:
-
这是 c++ 还是 c?如果是 c++,请使用新的 C++0x 标准 std::thread 类,它将是可移植的,您不必担心它并删除 c 标签。如果是C,请去掉c++标签。
-
抱歉,是C!我误用了标签。让我删除它!
-
你定义了#define _GNU_SOURCE
-
你在
#define _GNU_SOURCE之前#include <pthread.h>吗? -
对不起,我的回答错了。检查here,是否在包含任何标题之前定义了
_GNU_SOURCE?您也可以将其添加到编译器命令中,-D_GNU_SOURCE
标签: c linux multithreading redhat porting