Visual Studio 2017, How to make #include <pthread.h> work?

If you have vcpkg installed, then you can just do:

vcpkg.exe install pthread

That will download some code from https://sourceforge.net/projects/pthreads4w, compile it and install it in your system. If vcpkg is setup correctly on your machine, Visual Studio should use these files automatically.


Windows doesn't natively support pthreads.

There is an implementation of pthreads for Windows you could use. If you're just trying to get some code running on Windows ASAP it may be your best bet.

If you can modify the code, you might want to take a look at what pthread functions you are actually using; if all you need is a mutex a few #ifdefs around pthreads/winapi may be a better way to go.

There are also some projects which implement compatibility layers that aren't as expressive as the full pthreads API, but are more than enough for most projects. TinyCThread is one option (which I maintain, so take the recommendation with a grain of salt) which implements the C11 threads API.

Other options include:

  • GLib
  • libuv

OpenMP could also be a good choice. It is really easy to use, but operates at a higher level and so it may require a more substantial rewrite.


In Visual Studio 2017

  1. Project -> Manage Nuget Packages

  2. In browse Tab search for 'pthread'

  3. Select Install[Search Results in Nuget packages]

enter image description here


For Visual Studio 2017, I've installed through NuGet Packages.

Try below steps,

  1. Go to Project > 'Manage NuGet Packages'
  2. Browse > search for 'pthread' > install