vs2017配置pthread.h的方法

Posted chenjx85

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2017配置pthread.h的方法相关的知识,希望对你有一定的参考价值。

一、背景(以下为走不通的配置方法!)

笔者最开始配置pthread.h,采用的是vs自动安装的方法,如图所示。

技术图片

 

点击完“管理NuGet程序包”之后,弹出一个页面,如下,在“浏览”中输入pthread。

技术图片

 

然后十分自然顺畅地点击安装pthread这个库,安装完之后,在代码中#include<pthread.h>,倒也没报错了。

但是会出现 error C2011: “timespec”:“struct”类型重定义 这个错误。

经过百度,在https://blog.csdn.net/u010536615/article/details/70231441博客中发现如下方法。

要在pthread.h中的

#if !defined( PTHREAD_H )
#define PTHREAD_H
下面加上
#define HAVE_STRUCT_TIMESPEC
 
加上之后这个error倒没出现了,但是出现了另外两个链接的LNK2019报错,无法解析的外部符号。
得,链接库出错,那要不重装pthread吧。
 

二、走得通的方法

搜索了一下pthread安装的方法,找到了一篇博客给出了资源,另一篇博客给出了配置方法,这里就不重写了,链接如下,同学们跟着配置就好。

配置方法博客:https://blog.csdn.net/lujiandong1/article/details/45175153

由于笔者用的是debug x64模式,所以只配了x64的路径和添加了附加依赖项等。

实测可行,大家可以试试。

 

以上方法配置完之后,还是会出现error C2011: “timespec”:“struct”类型重定义 这个错误。

这次又搜索到第二个方法,见博客:https://blog.csdn.net/qq_23494915/article/details/78732389

实测可行,如下图。

技术图片

 

这个操作之后就没有报错了,很顺利地运行了出来。

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

pthread 和 mutex_lock 抛出分段核心转储

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

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

NPTL vs PThread

VS远程开发(远程调试)编译报错:对‘xxx’未定义的引用(设置库依赖顺序)(已解决)pthread(项目-->属性-->链接器-->输入-->库依赖项)

pthread_cond_destroy() 挂起的奇怪行为