Windowsでpthread
Windowsでpthreadのコンパイル
Windowsに環境をpthreadをコンパイルする環境を構築した際のメモ書きです.
参考にさせていただいたサイト様はこちら
【VC++】スレッド(pThread)を利用する環境を整える
私はVC++のようなIDEではなく,エディタとgccで行いましたが,基本は同じです.
pthread.h等々をダウンロード
Windowsにはpthreadのライブラリが標準で入っていません.
なのでこちらのリンクからライブラリ類をダウンロードし,インクルードパスにおいてあげることが必要です.
pthread win32
- includeの下に置くもの
- pthread.h
- sched.h
- semaphore.h
- libの下に置くもの
- libpthreadGC2.a
- libpthreadGCE2.a
- pthreadVC2.lib
- pthreadVCE2.lib
- pthreadVSE2.lib
- binの下に置くもの
- pthreadGC2.dll
- pthreadGCE2.dll
- pthreadVC2.dll
- pthreadVCE2.dll
- pthreadVSE2.dll
ボールドの部分は参考サイトにはありませんでしたが,私の環境では入れないとライブラリがなくコンパイルがうまくいきませんでした.
ちなみにインクルードパス諸々は次のコマンドで調べられます.
gcc -print-search-dirs
‘timespec’: ‘struct’ type redefinitionを解決する
windowsのtime.hには,既にtimespecが定義されていて,
pthread.hのインクルードガードはこれに対応していません.
したがって手っ取り早いのは,
#define HAVE_STRUCT_TIMESPEC #include <pthread.h>
こうしてしまうことです.
後はコンパイルするだけです.
gcc -o thread thread.c -lpthreadGC2