Win10 + VS2017の構成のpthread

0、pthreadのソースのダウンロード:https://sourceware.org/pthreads-win32/

次のように1は、pthreads-w32-2-9-1-release.zip完全に、エキスをダウンロードした後、読み込み

 

 ここで、Win32のヘッダファイルやライブラリ、ソースコード[pthreads.2]、[]の事前built.2のpthreadのはQueueUserAPCExドライブ、必要支持WDKコンパイラである[されます]。

図2に示すように、ヘッダファイルのディレクトリをインストールディレクトリVS2017にコピーされ、現在の環境下で[Cである[\ \プレbuilt.2が\のpthread-w32-2-9-1放出が挙げられる。]:\プログラムファイル(x86の)\のMicrosoft Visual Studioの\ 2017 \エンタープライズ\ VC \ツール\ MSVC \ 14.16.27023 \含めます

3、静的ライブラリファイルは、インストールディレクトリのVS2017にコピーされ、現在の環境が[Cである[\ Pthreadsのw32-2-9-1-リリース - \プリbuilt.2 \ libに。]:\プログラムファイル(x86の)\のMicrosoft Visual Studioの\ 2017 \エンタープライズ\ VC \ツール\ MSVC \ 14.16.27023 \ libに]、のx86、およびx64用 

[。\ Pthreadsの-w32-2-9-1リリース\プリbuilt.2 \ DLL] 4、動的ライブラリファイルは、Cに対応するシステムディレクトリ、x86のファイルにコピーされています:\ WINDOWS \ SYSWOW64ディレクトリ、x64のファイルは、 Cに対応:\ WINDOWS \ System32ディレクトリ

 

また、ライブラリには、プロジェクト内またはNugetもこのライブラリを見つけることができ、よりファッショナブルで参照することができます。

構成された後、次のコードをテストするために使用することができます。

1つの#include " pch.h " 
2の#include <iostreamの>
 3の#include <stdio.hの>
 4の#include <pthread.hの>
 5の#include <assert.h>
 6  
7  の#pragmaコメント(LIB、の「x86 / pthreadVC2 .LIB ")
 8  
9  ボイド * Function_t(ボイド * のParam)
 10  {
 11      のstd :: COUT << " 多线程" << はstd :: ENDL。
12      がpthread_t MYID = pthread_self()。
13      のstd :: coutの<< "<< myid.x << はstd ::てendl;
14      リターンNULL;
15  }
 16  
17  INT メイン(INT ARGC、CONSTのchar * ARGV [])
 18  {
 19      がpthread_tのPID。
20      のpthread_attr_t ATTR。
21      pthread_attr_init(&ATTR)。
22      pthread_attr_setscope(&ATTR、PTHREAD_SCOPE_PROCESS)。
23      pthread_attr_setdetachstate(&ATTR、PTHREAD_CREATE_DETACHED)。
24      のpthread_create(&PID、&ATTR、Function_t、NULL);
25      のstd :: coutの<< " ======================================== "<< はstd ::てendl;
26      GETCHAR()。
27      は、pthread_attr_destroy(&ATTR)。
28      リターン 0 ;
29 }

コンパイル時エラーであれば[C2011「TIMESPEC」:「構造体」タイプの再定義]、構造は、で定義されているため[pthread.hのTIME.H TIMESPEC繰り返し、同時に二つの異なるヘッダファイルは、その結果、条件をコンパイル定義された繰り返し構造]

ソリューション:

#if!定義された(PTHREAD_H)
の#define PTHREAD_H
プラス以下
#define HAVE_STRUCT_TIMESPEC

 

おすすめ

転載: www.cnblogs.com/lzhu/p/12032783.html