VS2013 配置pthread

原文:http://www.cnblogs.com/coolqiyu/p/5693461.html

 

参考:http://blog.csdn.net/qianchenglenger/article/details/16907821

一、下载地址

  ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip

解压后得到三个文件夹

二、安装

平台:win7 + VS2013

1. 打开Pre-built.2,下面有三个文件夹:dll, include, lib及其它文件。

2. 先查看VS2013的相关属性

项目—属性—VC++目录—包含目录(include)/库目录(lib)

库目录: 库文件的默认查找路径,也就是宏值$(VC_LibraryPath_x86)

3. 拷贝include/lib

  • Pre-built.2/include下的三个文件(pthread.h/sched.h/semaphore.h)放到 $(VC_IncludePath)下    [x64系统:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include] 
  • Pre-built.2/lib下的两个文件夹(x64/x86)放到 $(VC_LibraryPath_x86)下   [x64系统:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib]

4. 拷贝动态链接库

  • Pre-built.2/dll/x64下的两个文件放到C:\Windows\System32(32位程序)
  • Pre-built.2/dll/x86下的五个文件放到C:\Windows\SysWOW64(64位程序)

  (注意一下,千万不能将这些文件拷贝反位置,否则,程序运行时会提示说找不到对应的dll文件。这些在网上的很多文章中都被忽略掉了,所以我们特别提出。)

三、例子

#include <stdio.h>
#include <pthread.h>
#include <assert.h>

#pragma comment(lib,"x86/pthreadVC2.lib")

void* Function_t(void* Param)
{
    printf("我是线程! ");
    pthread_t myid = pthread_self();
    printf("线程ID=%d ", myid);
    return NULL;
}

int main()
{
    pthread_t pid;
    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("======================================== ");
    getchar();
    pthread_attr_destroy(&attr);
    return 0;
}

  

复制代码
 1 #include <stdio.h>
 2 #include <pthread.h>
 3 #include <assert.h>
 4 
 5 #pragma comment(lib,"x86/pthreadVC2.lib")
 6 
 7 void* Function_t(void* Param)
 8 {
 9     printf("我是线程! ");
10     pthread_t myid = pthread_self();
11     printf("线程ID=%d ", myid);
12     return NULL;
13 }
14 
15 int main()
16 {
17     pthread_t pid;
18     pthread_attr_t attr;
19     pthread_attr_init(&attr);
20     pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS);
21     pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
22     pthread_create(&pid, &attr, Function_t, NULL);
23     printf("======================================== ");
24     getchar();
25     pthread_attr_destroy(&attr);
26     return 0;
27 }
复制代码
posted @ 2017-08-09 16:24  lizhigang  阅读(1836)  评论(0编辑  收藏  举报