0、pthread源码下载:https://sourceware.org/pthreads-win32/

1、下载pthreads-w32-2-9-1-release.zip完毕后,解压,内容如下

其中,【Pre-built.2】是pthreads for win32的头文件和库文件,【pthreads.2】是源代码,【QueueUserAPCEx】是一个驱动,需要WDK支持编译。

2、将【.\pthreads-w32-2-9-1-release\Pre-built.2\include】目录下的头文件拷贝到VS2017的安装目录,当前环境下是【C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\include

3、把【.\pthreads-w32-2-9-1-release\Pre-built.2\lib】下的静态库文件拷贝到VS2017的安装目录,当前环境下是【C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\lib】,x86和x64对

4、把【.\pthreads-w32-2-9-1-release\Pre-built.2\dll】下的动态库文件拷贝到系统目录下,x86文件对应C:\Windows\SysWOW64目录,x64文件对应C:\Windows\System32目录

也可以在某个项目中引用该库,或者用更加时髦的Nuget也可以找到这个库。

配置好后,可用以下代码进行测试:

 #include "pch.h"
#include <iostream>
#include <stdio.h>
#include <pthread.h>
#include <assert.h> #pragma comment(lib,"x86/pthreadVC2.lib") void* Function_t(void* Param)
{
std::cout << "多线程 " << std::endl;
pthread_t myid = pthread_self();
std::cout << "线程ID=" << myid.x << std::endl;
return NULL;
} int main(int argc, const char *argv[])
{
pthread_t pid;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
pthread_create(&pid, &attr, Function_t, NULL);
std::cout << "======================================== " << std::endl;
getchar();
pthread_attr_destroy(&attr);
return ;
}

如果在编译时报错【C2011 “timespec”:“struct”类型重定义】,原因是【pthread.h 中的 timespec 和 time.h 中的结构定义重复了,同时两个头文件中的编译条件不同,造成了结构的重复定义】,

解决方案:

#if !defined( PTHREAD_H )
#define PTHREAD_H
下面加上
#define HAVE_STRUCT_TIMESPEC

Win10+VS2017配置pthread的更多相关文章

  1. vs2017配置pthread.h的方法

    一.背景(以下为走不通的配置方法!) 笔者最开始配置pthread.h,采用的是vs自动安装的方法,如图所示. 点击完“管理NuGet程序包”之后,弹出一个页面,如下,在“浏览”中输入pthread. ...

  2. CAFFE在win10+VS2017下的安装笔记

    老版的caffe在BVLC的github上已经找不到,如果要想下载老版caffe可以下载微软的caffe版本:https://github.com/Microsoft/caffe 网上的大多安装caf ...

  3. Win10 Hyper-V 配置

    Win10 Hyper-V 配置 安装 Hyper 程序和功能 -> 启用和关闭windows -> Hyper-V Hyper-V 虚拟网类型 外部网络 [外网/物理机/虚拟机] 内部网 ...

  4. CodeBlocks配置pthread环境

    参考资料:MinGW配置pthread环境 按[参考资料]里说的[下载资源]后,将libpthreadGC2.a放到codeBlocks安装目录下的MinGW\lib目录下,然后将pthread.h ...

  5. VC++6.0 下配置 pthread库2010年12月12日 星期日 13:14VC下的pthread多线程编程 转载

    VC++6.0 下配置 pthread库2010年12月12日 星期日 13:14VC下的pthread多线程编程     转载 #include <stdio.h>#include &l ...

  6. win10 如何配置 java jdk1.8环境变量(2017.2.24)

    win10 如何配置 java jdk 环境变量 这里的win10 为全新安装的系统 一.安装 下载 jdk 64位 windows 版本安装(默认安装) 默认安装的路径: C:\Program Fi ...

  7. Qt5.11.1安装与VS2017配置

    Qt5.11.1安装与VS2017配置 转 https://blog.csdn.net/gaojixu/article/details/82185694 文章目录 Qt5.11.1安装与VS2017配 ...

  8. VS2017 配置QT5

    QT安装 1. QT下载 2. 安装过程中,组件的选择(图自https://blog.csdn.net/gaojixu/article/details/82185694) 3. 安装完成 VS2017 ...

  9. Win10如何配置Jdk环境变量

    对于每一位做Java开发的朋友来说,Jdk是必须要安装的,安装好了Jdk,其实并没有结束,还需要配置Jdk的环境变量,系统在不断地更新,小编给大家介绍一下如何在Win10下配置Jdk,并检测是否配置成 ...

随机推荐

  1. 8.JSP与JavaBean

    1.<jsp:useBean> <html> <head> <title>jsp:useBean 标签的使用</title> </he ...

  2. JavaSpring【二、IOC】

    概述: 接口及面向接口编程 接口:用于沟通的中介物的抽象,实体把自己提供给外界的方法的抽象化说明,将声明和实现分离,使其能够改变内部而不影响与外部的交互方式 面向接口编程:在结构设计中,分清层次及调用 ...

  3. Flutter——ListView组件(平铺列表组件)

    ListView的常见参数: 名称 类型 说明 scrollDirection Axis Axis.horizontal 水平列表 Axis.vertical 垂直列表 padding EdgeIns ...

  4. linux入门常用指令2.安装nginx

    下载nginx包 nginx-1.10.3.tar.gz 解压 [root@localhost src]# tar -zxvf nginx-1.10.3.tar.gz [root@localhost ...

  5. java——maven依赖版本冲突

    博客:maven依赖jar包时版本冲突的解决

  6. BIO、NIO、AIO 有什么区别?(未完成)

    BIO.NIO.AIO 有什么区别?(未完成)

  7. 2018 牛客网暑期ACM多校训练营(第一场) E Removal (DP)

    Removal 链接:https://ac.nowcoder.com/acm/contest/139/E来源:牛客网 题目描述 Bobo has a sequence of integers s1, ...

  8. Path variable [contentHash:8] not implemented in this context: styles.[contentHash:8].css

    webPack 升级到 4.3.0 导致 extract-text-webpack-plugin 无法使用  

  9. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 140: invalid continuation byte

    web阅片系统,遇到dicom文件在文件夹不能正常读取的问题.解决方法如下: def rep7(request): file_path = os.path.dirname(__file__) + re ...

  10. spring注解@Import和@ImportResource

    @Import只负责引入javaCOnfig形式定义的Ioc容器配置,等同于<import resource="xxx.xml"/>将一个配置文件导入另一个 @Conf ...