windows配置pthread

前言

Pthread是由POSIX下的一套通用的線程庫,它在linux平臺下被廣泛的支持,而卻不支持windows平臺,但pthreads-w32爲此提供瞭解決方案,本文將簡單介紹如何在windows下安裝pthread-w32
安裝系統:windows7 64位系統
使用平臺:Microsoft Visual Studio 2008
配置軟件:Pthreads-w32
官網地址:http://sourceware.org/pthreads-win32/
下載地址:ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip
(在這裏選擇了 pthreads-w32-2-9-1 版本)

配置方法

1、下載軟件解壓後,看到有以下三個文件夾
這裏寫圖片描述
2、本次主要用到的是文件夾“Pre-built.2”下的“dll”文件夾(動態鏈接庫) ,“include”文件夾(頭文件)和 “lib”文件夾(靜態鏈接庫)
這裏寫圖片描述
3、配置動態連接庫:將”dll”文件夾下有”x64”和”x86”兩個文件夾; 把”x64”文件夾下的兩個文件拷貝到C:\Windows\System32; 把”x86”文件夾下的五個文件,拷貝到C:\Windows\SysWOW64下。(注意:千萬不能將這些文件拷貝反位置,否則,程序運行時會提示說找不到對應的dll文件)
拷貝”x64”文件夾內容:
這裏寫圖片描述
拷貝”x86”文件夾內容:
這裏寫圖片描述

4、配置頭文件:直接把”include”文件夾中的三個文件直接拷貝到Visual Studio的默認路徑的頭文件中,即VC->include文件夾下。例如我的VS2008安裝在D盤,即將”include”中文件拷貝到 D:\VS2008\VC\include下。
這裏寫圖片描述

5、配置靜態庫:根據需要,分別把”lib”文件夾下的”x86”文件夾的內容(或”x64”文件夾的內容)直接拷貝到Visual Studio的默認lib尋找路徑中,即VC->lib中。例如我的VS2008安裝在D盤,即庫文件拷貝到 D:\VS2008\VC\lib下。
拷貝"x86"文件夾情況:

測試代碼

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

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

void *msrp_recv_thread(void *data)
{
    int i = 0;
    for(i = 1; i <= 3; i++)
    {
        printf("+++++++++this is thread method: %d \n", i);
    }
    return NULL;
}
int main()
{
    int i = 0;

    pthread_t recv_thread;
    pthread_attr_t attr;


    pthread_attr_init(&attr);
    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
    if(pthread_create(&(recv_thread), &attr, msrp_recv_thread, NULL) < 0)
        return -1;
    for (i = 1; i <= 3; i++)
    {
        printf("----------this is main method: %d \n", i);
        Sleep(1);
    }

    pthread_attr_destroy(&attr);

    getchar();
    return 0;
}

注意

當出現:fatal error LNK1104: 無法打開文件“pthreadVC2.lib”時是代表無法鏈接到靜態庫,此時可以使用配置VS方法進行鏈接,具體如下:
右鍵項目,選擇屬性;然後在屬性頁面左側標籤欄中單擊”鏈接器”,並在”鏈接器”頁面中點擊“附加庫目錄”;最後在“附加庫目錄”中選擇存放靜態庫的路徑
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章