gcc4.4のthreadがコンパイルできない
Windows版だけかもしれませんが、C++0xの
#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
これらは
/* Define if gthreads library is available. */
/* #undef _GLIBCXX_HAS_GTHREADS */
〜
/* Define if C99 types inshould be imported in in
namespace std::tr1. */
#define _GLIBCXX_USE_C99_STDINT_TR1 1
_GLIBCXX_HAS_GTHREADSが伏せられてますね。。。自分で定義して
_GLIBCXX_HAS_GTHREADS
#include
と書くと、
#include
#includetypedef pthread_t __gthread_t;
typedef pthread_key_t __gthread_key_t;
typedef pthread_once_t __gthread_once_t;
typedef pthread_mutex_t __gthread_mutex_t;
typedef pthread_mutex_t __gthread_recursive_mutex_t;
typedef pthread_cond_t __gthread_cond_t;
typedef struct timespec __gthread_time_t;
とりあえず付けても怒られなかったオプション付けられるだけ付けてコンパイルしてみた。
gcc -Wall -std=gnu++0x -mwindows -mno-cygwin -lpthread-win32 -o thread.exe thread_sample.cpp -libstdc++
なんかものすごく間違ったことしてるんだろうか(^-^;