-
pthread多线程安装与测试
一、网上下载pthread包:pthreads-w32-2-9-1-release.zip
二、里面还有三个文件:Pre-built.2、pthreads.2、QueueUserAPCEx
① 找到Pre-built.2>include,可以看见三个头文件;
② 打开pthread.h, 添加如下一句加粗代码:
#if !defined( PTHREAD_H )
#define PTHREAD_H
#define HAVE_STRUCT_TIMESPEC
保存。
如果不添加这段代码,会报error C2011: “timespec”:“struct”类型重定义的错误,这是因为C++ pthread pthread.h 中的 timespec 和time.h 中的 结构定义重复了 ,同时两个头文件中的条件编译条件不同,所以造成结构重复定义,简单快速见效的解决方法就是注释pthread.h 头文件中的struct timespce 定义所以要先对pthread进行修改。
③ 将三个头文件移动到vs2015的include目录下:
D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include
三、Pre-built.2文件夹下有三个文件:
dll——动态链接库
include——头文件
lib——静态链接库
①把lib文件夹下的静态库文件x64和x86文件夹拷贝到vs2015的lib目录下:
D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib
②配置动态链接库:
Pre-built.2\dll\x86下的文件拷贝到C:\Windows\SysWOW64目录下
Pre-built.2\dll\x64下的文件拷贝到C:\Windows\System32目录下
四、测试:
#include “stdafx.h”
#include <pthread.h>
#pragma comment(lib,“pthreadVC2.lib”)
// note:此处易出现 模块计算机类型x86与目标计算机类型x64不一致的错误,应在项目
连接器—常规----附加库目录—填写相应的目录:
D:\Program Files %28x86%29\Microsoft Visual Studio 14.0\VC\lib\x64
int main(int argc, char *argv[])
{
return 0;
}
若成功,说明配置正确。
note:C++ 有自带的thread,参见std::thread
https://www.runoob.com/w3cnote/cpp-std-thread.html