在VC6.0和VS2010下编译pthreads-w32-2-8-0-release

一直工作在Linux平台下, 用惯了pthread API. 最近考虑做一套linux/windows兼容的多线程程序, 自己编译了pthreads-w32-2-8-0-release(当前最高版本). pthreads-w32是一个开源项目. 下载下来源码包解压后, 其中含有项目文件, 但有问题. 整理解决过程如下:

 

下载地址:

    ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-8-0-release.tar.gz

或者从如下目录浏览所有版本:

    ftp://sourceware.org/pub/pthreads-win32/

 

用VS2010或者VC++6.0创建Console形式的动态库或者静态库. 无论选择何种形式, 在项目中只需要添加pthread.c一个源文件. 不要包含其他任何源文件, pthread采用层叠包含.c的方式.  pthread.c处于最高端, 在预处理完成后, 已经包含有部代码. 但是请保证pthreads-w32-2-8-0-release.tar.gz解压缩后的所有文件在同一文件夹(但是不必和项目处于同一文件夹. 项目只需要选择添加对应目录下的pthread.c文件即可)

 

对于动态库, 需要在pthread.c文件中include "pthread.h"语句之前添加如下两行:

    #define PTW32_BUILD
    #pragma comment(lib, "Ws2_32.lib")

或者如果不想更改源文件, 则在项目设置的预处理宏中添加PTW32_BUILD, 在依赖库中添加Ws2_32.lib.

 

对于静态库, 需要在pthread.c文件中include "pthread.h"语句之前添加如下一行:

#define PTW32_STATIC_LIB

或者如果不想更改源文件, 则在项目设置的预处理宏中添加PTW32_STATIC_LIB.

 

最后, 需要添加头文件查找路径,

VS2010中如下:

    Project --> Properties --> c/c++ --> Additional Include Directories

下添加头文件路径, 例如在我的项目中设置为

    ../pthreads-w32-2-8-0-release.

 

VC++6.0中如下:

    Tools --> Options --> Directories

下添加头文件路径, 例如我的项目中设置为

    E:/work/vs2010-pthread-win32-2-8-0-release/pthreads-w32-2-8-0-release

 

OK, 执行Build即可.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值