'thread' не был объявлен в этой области [duplicate]

const something = { bar: "Foobar!" };
const foo = 'bar';

something[\`${foo}\`];
1
задан rubenvb 20 September 2013 в 10:50
поделиться

3 ответа

Обычный MinGW не может поддерживать std::thread. Вам нужно будет использовать инструментальную цепочку MinGW-w64 (например, поставляемую с Qt 5), которая поддерживает потоки «posix», так что libstdc ++ предоставляет функции <thread>, <mutex> и <future>.

Вы можете найти установщик здесь , но вы также можете попробовать просто заменить целую корневую папку mingw toolchain с помощью одного из этих пакетов . Вы можете выбрать 32- или 64-битный, не забудьте выбрать threads-posix, если вы хотите играть с std::thread и друзьями. Никаких специальных параметров компилятора, кроме тех, которые у вас уже есть, не требуется. Я рекомендую использовать -std=c++11, если вам не нужна совместимость с GCC 4.6.

3
ответ дан rubenvb 21 August 2018 в 08:55
поделиться
  • 1
    здорово. благодаря :) – fishfood 20 September 2013 в 10:52
  • 2
    Это не проблема поддержки компилятора, компилятор не знает и не заботится о потоках. Это стандартная библиотека, которая пропускает реализацию. См. Ответ ниже для небольшого облегченного решения, вместо использования эмуляции pthread в Windows. – Alexander Vassilev 11 December 2014 в 12:24

См. здесь для собственной реализации, которая может быть добавлена ​​в любую версию MinGW на C ++ 11: https://github.com/meganz/mingw-std-threads Это заголовок, только библиотека, поэтому вам просто нужно включить заголовки в свой проект, и вы получите потоки C ++ 11 и примитивы синхронизации.

0
ответ дан Alexander Vassilev 21 August 2018 в 08:55
поделиться
0
ответ дан Odiseo 21 August 2018 в 08:55
поделиться
Другие вопросы по тегам:

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