您的位置:首页 > 其它

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

2010-06-11 18:04 176 查看
一直工作在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即可.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: