码迷,mamicode.com
首页 > Windows程序 > 详细

Win10+VS2012配置pthread

时间:2020-04-11 12:40:02      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:zip   color   syswow64   org   系统   amp   getchar   spec   enter   

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也可以找到这个库。

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

 1 #include "pch.h"
 2 #include <iostream>
 3 #include <stdio.h>
 4 #include <pthread.h>
 5 #include <assert.h>
 6 
 7 #pragma comment(lib,"x86/pthreadVC2.lib")
 8 
 9 void* Function_t(void* Param)
10 {
11     std::cout << "多线程 " << std::endl;
12     pthread_t myid = pthread_self();
13     std::cout << "线程ID=" << myid.x << std::endl;
14     return NULL;
15 }
16 
17 int main(int argc, const char *argv[])
18 {
19     pthread_t pid;
20     pthread_attr_t attr;
21     pthread_attr_init(&attr);
22     pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS);
23     pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
24     pthread_create(&pid, &attr, Function_t, NULL);
25     std::cout << "======================================== " << std::endl;
26     getchar();
27     pthread_attr_destroy(&attr);
28     return 0;
29 }

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

解决方案:

#if !defined( PTHREAD_H )
#define PTHREAD_H
下面加上
#define HAVE_STRUCT_TIMESPEC
 
注意:使用时要在文件开头加上
#pragma comment(lib,"x86/pthreadVC2.lib")

Win10+VS2012配置pthread

标签:zip   color   syswow64   org   系统   amp   getchar   spec   enter   

原文地址:https://www.cnblogs.com/yuan-yang/p/12678535.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!