VS2017配置使用头文件pthread.h

原文链接: https://blog.csdn.net/cry1994/article/details/79115394

POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类Unix操作系统(Unix、Linux、Mac OS X等)中,都使用Pthreads作为操作系统的线程。Windows操作系统也有其移植版pthreads-win32。

下载源码

源码主页:https://sourceware.org/pthreads-win32/
ftp地址:ftp://sourceware.org/pub/pthreads-win32

下载最新版本pthreads-w32-2-9-1-release.zip解压得到三个文件夹

Pre-built.2

Pre-build.2 里面包含了pthreads for win32 的头文件和库文件;

pthreads.2

pthreads.2 里面包含了pthreads 的源代码;

QueueUserAPCEx

QueueUserAPCEx 里面是一个alert的driver,编译需要DDK 。Windows Device Driver Kit (NTDDK.h) 需要额外单独安装。

直接使用

Pre-built.2这个文件夹下有三个文件夹
dll 动态链接库
include 头文件
lib 静态链接库

1.1配置头文件

把include文件夹下的头文件拷贝到vs2017安装目录下

D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\include\

1.2配置静态链接库

把lib文件夹下的静态库文件拷贝到vs2017安装目录下

D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\lib

1.3配置动态链接库

Pre-built.2\dll\x86下的文件拷贝到C:\Windows\SysWOW64目录下
Pre-built.2\dll\x64下的文件拷贝到C:\Windows\System32目录下

测试

#include <pthread.h>
#pragma comment(lib,"pthreadVC2.lib")
int main()
{
    return 0;
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
编译错误C2011 “timespec”:“struct”类型重定义
可修改pthread.h文件,在
#if !defined( PTHREAD_H )
#define PTHREAD_H
下面加上一行宏定义
#define HAVE_STRUCT_TIMESPEC
可以解决“timespec”:“struct”类型重定义错误
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

至此,已经可以在VS2017中使用。如果不想改动到VS2017的目录和系统目录,可以通过配置工程项目属性,设置附加包含目录/链接器附加依赖库等选项,从而达到使用pthread库的目的。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置pthread.h头文件是为了在程序中使用多线程的功能。它包含了pthread库中定义的函数和数据结构的声明。在配置pthread.h头文件时,需要注意以下几点: 1. 确保正确引入头文件:在编写程序时,需要在源代码中包含pthread.h头文件,以便使用多线程相关的函数和数据结构。 2. 处理重定义问题:在一些特定情况下,可能会出现重定义的问题,比如在pthread.h头文件中与其他头文件中的声明冲突。为了解决这个问题,可以对重定义的部分进行注释或者使用条件编译的方式进行处理。 引用提到了在pthread.h头文件中声明了timespec类型,可能会导致重定义问题。引用中也提到了对pthread.h头文件中的timespec进行了注释。这说明在配置pthread.h头文件时,可能需要注意处理timespec类型的重定义问题。 3. 确保正确的编译环境:在使用pthread.h头文件时,需要确保正确的编译环境,包括正确引入相关的库文件和设置编译选项。引用提到了在Pre-build.2中包含了pthreads for win32的头文件和库文件,这是为了在Windows环境下使用pthread库。 总结来说,配置pthread.h头文件需要正确引入头文件、处理重定义问题和确保正确的编译环境。这样才能在程序中使用多线程功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [windows开发——配置pthread.h头文件](https://blog.csdn.net/baidu_34785556/article/details/98798351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [VS2017配置使用头文件pthread.h](https://blog.csdn.net/June_Xixi/article/details/83214450)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值