在windows下配置pthread多线程
Pthread是由POSIX提出的一套通用的线程库,在linux平台下,它被广泛的支持,而windows平台下,却并不被支持,而pthreads-w32为我们提供了解决方案,本文我们准备在我们的windows平台下进行pthread-w32的安装,在网络上有类似的文章,但是讲的都是比较老的平台,在windows8下支持并不全面,不过可以作为参考。我们在这里贴出几个网址,供参考使用。
Windows 7 64bit和Visual Studio 2010下安装及使用Pthread-w32 2.8
windows下使用pthread库(转)
如果你的是XP系统或者win7 32位系统,那么,那两篇文章已经足以你完成pthread-w32的安装了。现在,我们开始讲我们的尝试过程。
一、安装平台
windows8 64位系统,Microsoft Visual Studio 2012
二、pthreads-w32 下载地址
我们这里下载最新版本pthreads-w32-2-9-1
ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip
下载后解压,可以看到共有三个文件夹
我们用到的主要是“Pre-built.2”这个文件夹下的三个文件夹,分别是动态链接库、头文件、静态链接库
三、配置头文件及静态链接库
这里有多种方式,我们这里只提到我们用到的一种,总之目的是让我们建立的工程能够找到对应的头文件、静态库文件,以及运行时程序能够找到动态链接库文件。
这里,我们直接把头文件拷贝到Visual Studio的默认路径的头文件中,即把include文件夹中的三个文件直接拷贝到Visual Studio安装目录下VC->include文件夹下,例如我将include中文件拷贝到的位置是
E:\Program Files\Microsoft Visual Studio 11.0\VC\include
这样,我们就不必每次在项目用到时都配置一遍,特别是在Visual Studio2012 貌似不支持全局的头文件配置时(不确定,如果谁找到了可以告诉我一声),这种方式对于经常会建一些小项目的人来说,相对节省时间。
同样的办法与原因,我们也可以把lib文件夹下的内容拷贝到Visual Studio安装目录下默认的lib寻找路径中,即VC->lib中,例如我将lib文件夹下的x64与x86两个文件直接拷贝到
E:\Program Files\Microsoft Visual Studio 11.0\VC\lib
的下面。
四、配置动态链接库
和头文件和静态链接库的配置方式相似,我们这里将dll文件夹的内容放到我们程序能够找到的位置,我们的方案是
把dll下的x64文件夹下的两个文件,即pthreadGC2.dll与pthreadVC2.dll拷贝到C:\Windows\System32下(用于64位程序的运行)
把dll下的x86文件夹下的五个文件,拷贝到C:\Windows\SysWOW64下(用于32位程序的运行),注意一下,千万不能将这些文件拷贝反位置,否则,程序运行时会提示说找不到对应的dll文件。这些在网上的很多文章中都被忽略掉了,所以我们特别提出。
五、运行测试
完成以上配置之后,我们运行一下测试程序,证明我们的配置完成了
- //main.cpp
- #include <stdio.h>
- #include <pthread.h>
- #include <assert.h>
- #pragma comment(lib,"x86/pthreadVC2.lib")
- void* Function_t(void* Param)
- {
- printf("我是线程! ");
- pthread_t myid = pthread_self();
- printf("线程ID=%d ", myid);
- return NULL;
- }
- int main()
- {
- 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);
- printf("======================================== ");
- getchar();
- pthread_attr_destroy(&attr);
- return 0;
- }
这里,我们需要注意的是我们的第6行代码,我们需要在代码中包含入静态链接库(注意,根据不同的编译选项,选择x86还是x64,如果不相配,将无法链接完成)
#pragma comment(lib,"x86/pthreadVC2.lib")
在windows下配置pthread多线程相关推荐
- windows下使用pthread库
最近在看<C++多核高级编程>这本书,收集了些有用的东西,方便在windows下使用POSIX标准进行Pthread开发,有利于跨平台. ------------------------- ...
- Windows下配置PHP环境
Windows下配置PHP环境 首先要下载如下软件,推荐到官网下载 最流行的HTTP服务器软件之一.快速.可靠.可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,完全免费,完全源 ...
- php sendmail方法,PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
本文实例讲述了PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法.分享给大家供大家参考,具体如下: 1.php mail()函数在windows不能用,需要安装sen ...
- windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error...
windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error 学习了:https ...
- windows 下配置 react native 开发环境
windows 下配置 react native 开发环境 安装nvm 由于react native 需要使用 NodeJs 4.0以上版本,为了方便切换NodeJs,首先我们需要安装nvm. 你可以 ...
- Windows下配置Chrome WebDriver
其实就是下载一个exe,放在chrome下面,添加到环境变量 Windows下配置Chrome WebDriver 下载地址,选版本: http://npm.taobao.org/mirrors/ch ...
- windows下配置ssh(FreeSSHD + putty)
windows下配置ssh(FreeSSHD + putty): 1.关于配置过程找到一篇很好的博客,推荐大家先好好看一下,这篇博文解决了大方向问题. 地址:http://blog.csdn.net/ ...
- Windows下配置单机Hadoop环境
Windows下配置单机Hadoop环境 文章目录 Windows下配置单机Hadoop环境 下载Hadoop 下载配置文件 配置环境变量 初始化HDFS 启动Hadoop 关闭Hadoop 常见错误 ...
- Windows下配置IDEA开发环境
Windows下配置IDEA开发环境 文章目录 Windows下配置IDEA开发环境 安装JDK 查看JDK是否安装 下载JDK 配置环境变量 安装IDEA 下载IDEA 安装IDEA 初始化IDEA ...
最新文章
- 给新手或者中级程序员提的22条重要建议.
- spring日志报错提醒_Spring Boot 2.x : 整合日志框架 Log4j2
- zoj 3696 Alien's Organ(泊松分布)
- Python GUI界面编程初步 01 - GUI库的特点和选择
- 平纹、斜纹、缎纹是什么?各自有何特点?
- Python取出SQL表单中的字段名
- 硬盘数据丢失原因?硬盘数据恢复方法
- 功能强大的pdf控件,用户无需安装任何软件即可使用
- 计算机txt公式,完整word版本积分公式
- cad画多段线时不显示轨迹_CAD画的线段显示不出来的解决方法
- 关于流行的几点思考——《引爆点》读书笔记
- 自动驾驶汽车技术介绍【硬件+软件】
- js逆向-1 模拟登陆微信公众号平台
- 如何获取QQ邮箱授权码?
- ~~积累帖~~学科专业术语 英文缩写总结(一)——通信 信息论(持续更新)
- LSTM做预测遇到的错误总结
- linux6.5取消屏保,怎么把wps屏保关掉
- cvx怎么处理向量和向量共轭转置的乘积_矩阵论练习2(共轭转置的秩和解空间)...
- kvm创建uefi虚拟机
- Linux——Bash脚本基本用法总结
热门文章
- AngularJS和DataModel
- 博客非100%原创,在学习道路上,我一直站在别人肩上
- 测试心得:微图书销售小程序
- 图论之tarjan缩点
- Go 学习笔记(11)— 切片定义、切片初始化、数组和切片差异、字符串和切片转换、len()、cap()、空 nil 切片、append()、copy() 函数、删除切片元素
- 深入jQuery中的data()
- C语言的变量的内存分配
- php imagecopy 用法,php使用imagecopymerge()函数创建半透明水印
- java的不足_Java不足之我见
- shell访问php文件夹,Shell获取某目录下所有文件夹的名称