Я использую GCC 4.5.0 с Eclipse IDE (если это имеет значение) в Windows через MinGW.
Я использую флаг -std = c ++ 0x
Я обнаружил, что _GLIBCXX_HAS_GTHREADS
до сих пор не определен, поэтому поток для меня
все еще не является членом пространства имен std
. - или, может быть, это что-то еще.
Что нужно сделать, чтобы получить поддержку многопоточности C ++ 11 с GCC?
PS Он не распознает флаг -pthread
. В другом месте на этом сайте я читал, что это работает.
Редактировать: Глупо: pthread
- это библиотека, а не опция. Он установлен, gcc может найти заголовок, но сигары по-прежнему нет.
Прекрасно работает в Linux ( g ++ -std = c ++ 0x -lpthread
без дополнительных определений).
Однако эта ветка в списке рассылки Cygwin предполагает, что, по крайней мере, начиная с 4.4, _GLIBCXX_HAS_GTHREADS был отключен тестом autoconf при сборке libstdc ++, потому что в реализации cygwin pthread отсутствует pthread_mutex_timedlock. Возможно у MinGW такая же проблема.
Кроме того, эта ветка на comp.lang.c ++. Moderated говорит то же самое. Не поддерживается библиотекой.
Что нужно сделать, чтобы получить поддержку потоковой передачи C ++ 0x с GCC?
Использовать ускорение? Серьезно http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html утверждает, что потоки не завершены даже в основной ветке, поэтому этого не будет ни в одном текущем выпуске.