您的位置:首页 > 其它

VS2010配置pthread库

2016-04-06 15:47 323 查看
1、下载:http://sourceware.org/pthreads-win32/#download,下载.zip版本的;然后解压;
2、执行a.bat和b.bat两个脚本,注意a.bat放到库的目录下;

a.bat:

rem put this file to :D:\#win pthread\pthreads-w32-2-9-1-release\Pre-built.2

copy include\pthread.h "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\"pthread.h
copy include\sched.h "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\"sched.h
copy include\semaphore.h "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\"semaphore.h

copy dll\x86\pthreadVC2.dll %windir%\pthreadVC2.dll
copy dll\x86\pthreadVCE2.dll %windir%\pthreadVCE2.dll
copy dll\x86\pthreadVSE2.dll %windir%\pthreadVSE2.dll

copy lib\x86\pthreadVC2.lib "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\"pthreadVC2.lib
copy lib\x86\pthreadVCE2.lib "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\"pthreadVCE2.lib
copy lib\x86\pthreadVSE2.lib "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\"pthreadVSE2.lib

ping -n 2 127.1>nul


b.bat:
rem put this file to :D:\#win pthread\pthreads-w32-2-9-1-release\Pre-built.2

del /f /a /q "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\"pthread.h
del /f /a /q "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\"sched.h
del /f /a /q "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\"semaphore.h

del /f /a /q %windir%\pthreadVC2.dll
del /f /a /q %windir%\pthreadVCE2.dll
del /f /a /q %windir%\pthreadVSE2.dll

del /f /a /q "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\"pthreadVC2.lib
del /f /a /q "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\"pthreadVCE2.lib
del /f /a /q "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\"pthreadVSE2.lib

ping -n 2 127.1>nul

2、将include、lib加入到VS中去,注意如果机器为64位,则加lib的时候加的路径一定要到x86那里,如我的是E:\yangyang\pthreads-w32-2-9-1-release\Pre-built.2\lib\x86;

3、在链接器-输入-附加依赖项一栏添加 pthreadVC2.lib;pthreadVCE2.lib;pthreadVSE2.lib;

4、拷贝pthreadVC2.dll至工程目录,至此完成。
5、附测试程序代码:

#include<stdio.h>
#include<pthread.h>
#include<Windows.h>
#pragma comment(lib, "pthreadVC2.lib")  //必须加上这句

void*Function_t(void* Param)
{
pthread_t myid = pthread_self();
while(1)
{
printf("线程ID=%d \n", myid);
Sleep(4000);
}
return NULL;
}

int main()
{
pthread_t pid;
pthread_create(&pid, NULL, Function_t,NULL);
while (1)
{
printf("in fatherprocess!\n");
Sleep(2000);
}
getchar();
return 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: