vs2010配置pthread库
最近合作一个项目,导师让我负责网络通信,需要跟同学负责的部分进行通信。同学的工程中使用到了#include <pthread.h>
,于是自己需要在vs2010中配置pthread库。
1. Pthread介绍
- POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类Unix操作系统(Unix、Linux、Mac OS X等)中,都使用Pthreads作为操作系统的线程。Windows操作系统也有其移植版pthreads-win32。
- 具体见:百度百科——Pthread
2. 下载pthread库
官方给出的下载链接,一直没反应,下载都忙活了好一会儿。
-
Pthreads-w32 release官方地址:https://sourceware.org/pthreads-win32/,点击进入。下拉页面,点击
mirror
。
-
在mirror列表中,选择合适的镜像,我选择的是
US: mirrors.kernel.org (http)
。
-
点击
US: mirrors.kernel.org (http)
,进入下载页面,点击pthreads-win32/
进入新的页面。在新的也页面中,点击pthreads-w32-2-9-1-release.zip 进行下载。 -
下载好以后,解压得到以下三个文件,这次需要使用到的是
Pre-built.2
文件夹。将Pre-built.2
文件夹复制到合适的位置,我复制到了D:\Pre-built.2
。
3. vs2010配置pthread库
创建一个Win32控制台应用程序,然后配置以下信息:
- 解决方案资源管理器 → 属性 → 配置属性 → C/C++ → 常规 → 附加包含目录 → 出现下拉菜单,点击编辑,弹出窗口 → 点击右右上角新建一条记录,内容为
Pre-built.2
的include路径:D:\Pre-built.2\include
。 - 解决方案资源管理器 → 属性 → 配置属性 → 链接器 → 常规 → 附加库目录 → 出现下拉菜单,点击编辑,弹出窗口 → 点击右右上角新建一条记录,内容为
Pre-built.2
的lib路径:D:\Pre-built.2\lib\x64
,我选择的是x64。 - 解决方案资源管理器 → 属性 → 配置属性 → 链接器 → 输入 → 附加依赖项→ 在开头添加
pthreadVC2.lib;
,注意要使用;
分隔。 - 配置完成,可以Ctrl+F5运行程序,看配置是否成功。
4. Pthread测试代码
Pthread_Test.cpp代码:
// Pthread_Test.cpp : Defines the entry point for the consoleapplication.
#include "stdafx.h"
#include <stdio.h>
#include <pthread.h>
#include <assert.h>
void* Function_t(void* Param);
int _tmain(int argc, _TCHAR* argv[])
{
pthread_tpid;
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("====\n");
getchar();
pthread_attr_destroy(&attr);
return0;
}
void* Function_t(void* Param)
{
printf("Thread Starts.\n");
pthread_tmyid = pthread_self();
printf("Thread ID=%d ", myid);
returnNULL;
}
参考链接:Windows 7 64bit和Visual Studio 2010下安装及使用Pthread-w32 2.8(超级感谢,靠着它完成的)