VS 2019配置多线程pthread库

下载库文件

在学习c++过程中,c++多线程一般需要用到pthread多线程库,这是一般是假设我们使用的是 Linux 操作系统,编译工具是gcc的情况下,但是大多数情况咱们开发的操作系统是Windows,编译工具是Visual Studio。本文章的基础环境是win10,VS 2019。

先去下载pthread库

ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip

解压后会看到有三个文件夹
VS 2019配置多线程pthread库_第1张图片

VS 2019配置

我们的测试程序来自菜鸟教程的C++多线程教程
,创好项目后引入pthread的头文件会报找不到的错误。
VS 2019配置多线程pthread库_第2张图片

去项目NuGet程序包里下载这个库

VS 2019配置多线程pthread库_第3张图片

到浏览中搜索安装

VS 2019配置多线程pthread库_第4张图片

安装完后运行程序会遇到第一个错误 C2011 “timespec”:“struct”类型重定义

VS 2019配置多线程pthread库_第5张图片

到pthread.h头文件里,在

#if !defined( PTHREAD_H )
#define PTHREAD_H

下面加#define HAVE_STRUCT_TIMESPEC

VS 2019配置多线程pthread库_第6张图片

再次运行,此时会出现两个新的错误

  • 错误 LNK2019 无法解析的外部符号 __imp__pthread_create
  • 错误 LNK2019 无法解析的外部符号 __imp__pthread_exit

VS 2019配置多线程pthread库_第7张图片

这时需要我们回到pthread.h头文件里,任意位置上加上

#pragma comment(lib,"pthreadVC2.lib")

VS 2019配置多线程pthread库_第8张图片

再运行程序报
错误 LNK1104 无法打开文件“pthreadVC2.lib”

在这里插入图片描述

感觉离希望越来越近了,错误说无法打开“pthreadVC2.lib”,咱们把上面下载好的Pre-built.2/lib/x86(选x86还是x64文件夹视你的编译器平台而定)里的找到pthreadVC2.lib

VS 2019配置多线程pthread库_第9张图片

把pthreadVC2.lib放到程序根目录下,就是和你的代码放到同一级目录上

VS 2019配置多线程pthread库_第10张图片

再运行程序,这次终于弹出黑框框了,但是会提醒我们系统里缺少pthreadVC2.dll

VS 2019配置多线程pthread库_第11张图片

这时需要将dll库放入Windows系统库文件中

  1. 打开Pre-built.2下dll文件夹,有两个不同平台的dll,把x64下的文件放到C:\Windows\System32\下
  2. 把x86文件夹放到SysWOW64\下

据说之所以把x64的放32位下,x86的放64位下,是为了让64位机能运行32位的程序

最后一次运行程序,成功运行!
VS 2019配置多线程pthread库_第12张图片

参考博客

如何在Visual Studio中配置pthread多线程库

你可能感兴趣的:(C++,c++)