GCC std :: поток не найден в пространстве имен std

Я использую GCC 4.5.0 с Eclipse IDE (если это имеет значение) в Windows через MinGW.

Я использую флаг -std = c ++ 0x

Я обнаружил, что _GLIBCXX_HAS_GTHREADS до сих пор не определен, поэтому поток для меня все еще не является членом пространства имен std . - или, может быть, это что-то еще.

Что нужно сделать, чтобы получить поддержку многопоточности C ++ 11 с GCC?

PS Он не распознает флаг -pthread . В другом месте на этом сайте я читал, что это работает.

Редактировать: Глупо: pthread - это библиотека, а не опция. Он установлен, gcc может найти заголовок, но сигары по-прежнему нет.

15
задан Xeo 18 December 2011 в 23:51
поделиться

2 ответа

Прекрасно работает в Linux ( g ++ -std = c ++ 0x -lpthread без дополнительных определений).

Однако эта ветка в списке рассылки Cygwin предполагает, что, по крайней мере, начиная с 4.4, _GLIBCXX_HAS_GTHREADS был отключен тестом autoconf при сборке libstdc ++, потому что в реализации cygwin pthread отсутствует pthread_mutex_timedlock. Возможно у MinGW такая же проблема.

Кроме того, эта ветка на comp.lang.c ++. Moderated говорит то же самое. Не поддерживается библиотекой.

10
ответ дан 1 December 2019 в 03:34
поделиться

Что нужно сделать, чтобы получить поддержку потоковой передачи C ++ 0x с GCC?

Использовать ускорение? Серьезно http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html утверждает, что потоки не завершены даже в основной ветке, поэтому этого не будет ни в одном текущем выпуске.

3
ответ дан 1 December 2019 в 03:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: