文档章节

在windows下配置pthread

piggybear
 piggybear
发布于 2015/02/16 10:33
字数 969
阅读 14
收藏 0
点赞 0
评论 0

      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文件。这些在网上的很多文章中都被忽略掉了,所以我们特别提出。

五、运行测试

       完成以上配置之后,我们运行一下测试程序,证明我们的配置完成了

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. //main.cpp  
  2. #include <stdio.h>  
  3. #include <pthread.h>  
  4. #include <assert.h>  
  5.   
  6. #pragma comment(lib,"x86/pthreadVC2.lib")  
  7.   
  8. void* Function_t(void* Param)  
  9. {  
  10.     printf("我是线程! ");  
  11.     pthread_t myid = pthread_self();  
  12.     printf("线程ID=%d ", myid);  
  13.     return NULL;  
  14. }  
  15.   
  16. int main()  
  17. {  
  18.     pthread_t pid;  
  19.     pthread_attr_t attr;  
  20.     pthread_attr_init(&attr);  
  21.     pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS);  
  22.     pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);  
  23.     pthread_create(&pid, &attr, Function_t, NULL);  
  24.     printf("======================================== ");  
  25.     getchar();  
  26.     pthread_attr_destroy(&attr);  
  27.     return 0;  
  28. }  
       这里,我们需要注意的是我们的第6行代码,我们需要在代码中包含入静态链接库(注意,根据不同的编译选项,选择x86还是x64,如果不相配,将无法链接完成)

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #pragma comment(lib,"x86/pthreadVC2.lib")  

© 著作权归作者所有

共有 人打赏支持
piggybear
粉丝 3
博文 237
码字总数 37552
作品 0
西安
技术主管
piggy_xrh/libstpool

.简介 libstpool是一个开源的轻便的跨平台的动态c/c++线程池,任务池库, 支持Windows, Linux, Unix, ARM, MAC/OSX, NDK,提供丰富的特性支持. .特性 (支持) (支持) (支持) 静态线程池 (支持...

piggy_xrh ⋅ 2015/01/23 ⋅ 0

mingw无法编译多线程程序的问题及解决

在linux环境下,用gedit+gcc方式学习一段时间的c语言,发现自己越来越佩服linux的牛人了。 居然不用IDE也能开发代码。我做不到,所以有回到了windows的怀抱。 mingw是windows版本的gnu c/c++...

mfcai ⋅ 2013/03/04 ⋅ 2

浅谈 linux 多线程编程和 windows 多线程编程的异同

很早以前就想写写linux下多线程编程和windows下的多线程编程了,但是每当写时又不知道从哪个地方写起,怎样把自己知道的东西都写出来,下面我就谈谈linux多线程及线程同步,并将它和windows...

红薯 ⋅ 2011/03/24 ⋅ 1

如何让 Qt 的程序使用 Sleep

Qt 为何没有提供 Sleep 论坛上不时见到有人问: Qt 为什么没有提供跨平台的 sleep 函数? 使用平台相关的 Sleep 或 nanosleep 以后,界面为什么没有反应? QThread 中提供了protected 权限的...

kartik ⋅ 2014/08/10 ⋅ 0

socket在windows下和linux下的区别

windows到Linux代码移植遇到的问题 1、一些常用函数的移植 http://www.vckbase.com/document/viewdoc/?id=1586 2、网络 ------ 转载 & 修改(待整理) socket相关程序从windows移植到linux下...

mickelfeng ⋅ 2015/10/14 ⋅ 1

将 Win32 程序移植到 Linux

对于这个问题,网上已经有很多资料给予了介绍,但是相比于这些信息,本文立足于个人的实践,将内容具体到开发环境和源代码,我觉得还是有很多值得总结和借鉴的。 首先声明开发环境。Win32程序...

长平狐 ⋅ 2013/01/06 ⋅ 0

socket在windows下和linux下的区别的网络文摘

Windows到Linux代码移植遇到的问题 1、一些常用函数的移植http://www.vckbase.com/document/viewdoc/?id=1586 2、socket------转载&修改(待整理) socket相关程序从windows移植到linux下需要...

雅各宾 ⋅ 2013/07/17 ⋅ 0

线程局部存储tls的使用

线程局部存储(Thread Local Storage,TLS)主要用于在多线程中,存储和维护一些线程相关的数据,存储的数据会被关联到当前线程中去,并不需要锁来维护。。 因此也没有多线程间资源竞争问题,那...

ruki ⋅ 2016/09/28 ⋅ 0

linux系统下的coco2d游戏项目移植到windows下,找不到文件?

运行环境:windows 64位,vs2013 1.#include windows系统下没有该头文件 fatal error C1083: Cannot open include file: 'netinet/in.h': No such file or directory (..ClassesgamecoreEve......

柯先生 ⋅ 2015/03/11 ⋅ 1

qykings/kgameserver

#kgameserver socket 的服务器 先做windows,在做其它 使用的线程库是pthread 版本 pthreads-w32-2-9-1-release 下载地址百度网盘 http://pan.baidu.com/s/1ntG7FAx pthreads-w32-2-9-1-rel......

qykings ⋅ 2014/11/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 2

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部