[[高エネルギー物理学実験におけるデータ収集]]
pthreads for win32( http://sourceware.org/pthreads-win32/ )
の library を build してみようと思った。
C version は gcc でも VC でも問題無くできた。しかし、
EH version は gcc でも VC でも undefined reference がいくつか出て、失敗する。
どうも __cplusplus まわりではないかと疑われる。Google で検索をかけて
みると、同様例が数個見つかったが、いずれも解決した様子はない。そもそも
distribution に dll が含まれているので、library から build しようとする
人は少ないのかも知れない。
CVS を見ると、比較的最近まで(主に 64bit 対応のため)update されているみたい
なので、cvs から取ってこようとして、指示通りの password を入れても
get できない。これも昨年末に同様の mailing-list 記事があるが、
返事はされていない。
なんだか、信用できるのか心配になってくる。というか、、
C++ 用の library を別途作れということなのか?確かに EH は C++ でしか意味を
持たないが、library は extern C で共用させるのではないのか?
よくわからなくなってきた。
というわけで、、というわけでもないが、、ちょっと超手抜き実装を試みる。
- [[Pthread for Win32 の実装の試み(1)]]
- [[Pthread for Win32 の実装の試み(2)]]
まあ、一応動いた。
さて、C であれば、一応鬱陶しい問題は避けられる。そこで、MinGW に
pthreads-w32-2-8-0-release.tar.gz
を install してみた。
make clean GC
とすると、pthreadGC2.dll と libpthreadGC2.a ができる。
- pthreadGC2.dll を \Windows\System32\ へ
- libpthreadGC2.a を \mingw\lib\ へ
- pthread.h、semaphore.h、sched.h を \mingw\include\ へ
基本的にこれだけで動くようになった。