MinGW и std :: thread

Поэтому я пытался получить следующий код для компиляции и запуска в Windows с помощью компилятора MinGW.

#include <iostream>
#include <thread>

void test()
{
    std::cout << "test" << std::endl;
}

int main()
{
    std::thread t(test);
}

Я компилирую с помощью следующей команды:

g++ -std=c++11 test.cpp -o test.exe

Теперь проблема в том, что нужно использовать версию MinGW, и я попробовал все версии, которые мне известны.

MinGW-сборки:токарно-win32MinGW-сборки:токарно-POSIXMinGW-w64:stdthread экспериментальный rubenvbMinGW-w64:stdthread экспериментальный rubenvb 4.7

Номер 1 не работает, так как GCCвидимо только поддерживает Обдумайте вещи изнутри.

Номер 2 компилируется и по существу даже выводитtest (см. последнюю строку вывода), но он также вылетает с ошибкой:

terminate called without an active exception

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
test

Числа 3 и 4 снова компилируются, но они не выводятtest и вместо этого мгновенно падает, но с более наглядным выводом:

terminate called after throwing an instance of 'std::system_error'
  what():  Enable multithreading to use std::thread: Operation not permitted

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Google привел меня, конечно, кGCC трекер ошибок и некоторые другие посты, которые предлагается использовать-pthread, который не помогает вообще.

Я также пытался вручную связать сwinpthread а такжеpthread, но это тоже ничего не делает.

Там также нет разницы между-std=c++11 а также-std=gnu++11...

Я действительно потерян сейчас и не знаю, возможно ли вообще получить версию MinGW, которая поддерживаетstd::thread, но, возможно, я просто пропускаю некоторые флаги компилятора. Я надеюсь, что кто-то может мне помочь!

Ответы на вопрос(2)

Ваш ответ на вопрос