pthread.h 头文件问题

Posted

技术标签:

【中文标题】pthread.h 头文件问题【英文标题】:pthread.h header problem 【发布时间】:2011-03-02 03:18:06 【问题描述】:

嗨 我正在从 Linux 移植到 Visual C++ 。当我构建编码时,它表明 VC++ 不知道这个 pthread.h 头文件。我无法评论它,因为代码中有一个变量“pthread_mutex_t”。我该怎么办 ? VC++ 是否有对应的头文件?

凯文

【问题讨论】:

查看***.com/questions/2403536/pthreads-in-visual-c 是否有类似问题。 【参考方案1】:

有一个适用于 Windows 的 pthreads 实现,称为 pthread-w32:

http://sourceware.org/pthreads-win32/

【讨论】:

这可能会大大简化您的移植工作。【参考方案2】:

我不认为你会在 Windows 上找到 pthread,除非你使用的是 cygwin 或类似的东西。试试 windows 特定的 CriticalSection:http://msdn.microsoft.com/en-us/library/ms682530(v=vs.85).aspx

或者使用在 windows 和 unix 上都可以使用的 boost:http://www.boost.org/doc/libs/release/doc/html/thread/synchronization.html

【讨论】:

【参考方案3】:

Windows 没有对 pthread 的本机支持。如果您想在 Windows 上使用 pthread 而不进行重大代码更改,您可能需要查看 Cygwin 或无数其他 pthread 端口之一。

也就是说,在我看来,最好的做法是从使用跨平台线程库开始,例如 boost.thread。

【讨论】:

以上是关于pthread.h 头文件问题的主要内容,如果未能解决你的问题,请参考以下文章

gcc编译线程程序,为啥要加-lpthread,头文件已经包含了<pthread.h>了啊

gcc编译线程程序,为啥要加-lpthread,头文件已经包含了<pthread.h>了啊

pthread.h不属于linux内核,但是为啥很多内核源码中include了pthread.h

这个C语言 啥意思啊#include <pthread.h>

调用库<semaphore.h>时,VS报错无法解析的外部符号 __imp__pthread_create

调用库<semaphore.h>时,VS报错无法解析的外部符号 __imp__pthread_create