Visual Studio 2017,如何使#include <pthread.h>工作?

时间:2018-02-20 21:06:53

标签: c visual-studio-2017

我觉得我今天一直在搜索如何让#include <pthread.h>在Windows 10上的Visual Studio 2017中工作,并且没有找到有效的答案。有人可以告诉我如何让这个工作?

我收到的错误是:无法打开源文件“pthread.h”

4 个答案:

答案 0 :(得分:8)

在Visual Studio 2017中

  1. 项目->管理Nuget程序包

  2. 在浏览选项卡中搜索“ pthread”

  3. 选择安装[Nuget软件包中的搜索结果]

enter image description here

答案 1 :(得分:2)

如果安装了 vcpkg ,则可以执行以下操作:

vcpkg.exe install pthread

这将从https://sourceforge.net/projects/pthreads4w下载一些代码,进行编译并将其安装在您的系统中。如果您的计算机上正确设置了 vcpkg ,则Visual Studio应该自动使用这些文件。

答案 2 :(得分:1)

Windows本身不支持pthread。

您可以使用an implementation of pthreads for Windows。如果您只想尝试在Windows上运行某些代码,那么这可能是您最好的选择。

如果你可以修改代码,你可能想看一下你实际使用的pthread函数;如果您只需要一个互斥锁,那么围绕pthreads / winapi的#ifdef可能是一个更好的方法。

还有一些项目实现了与完整pthreads API一样富有表现力的兼容性层,但对于大多数项目来说已经绰绰有余了。 TinyCThread是一个选项(我维护,所以采取一些盐的推荐),实现C11线程API。

其他选项包括:

OpenMP也可能是一个不错的选择。它非常易于使用,但操作更高,因此可能需要更大量的重写。

答案 3 :(得分:1)

对于Visual Studio 2017,我已通过NuGet Packages安装。

尝试以下步骤,

  1. 转到项目&gt; &#39;管理NuGet包&#39;
  2. 浏览&gt;搜索&#39; pthread&#39; &GT;安装