MinGW und std :: thread

Daher habe ich versucht, den folgenden Code mithilfe eines MinGW-Compilers zu kompilieren und unter Windows auszuführen.

#include <iostream>
#include <thread>

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

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

Ich kompiliere mit dem folgenden Befehl:

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

Jetzt ist das Problem die Version von MinGW, die man benutzen sollte und ich habe über alle Versionen ausprobiert, die ich kenne.

MinGW-Builds:thread-win32MinGW-Builds:Thread-PosixMinGW-w64:stdthread experimental rubenvbMinGW-w64:stdthread experimental rubenvb 4.7

Nummer 1 funktioniert nicht, seit GCCanscheinend nur unterstützt pthread zeug intern.

Nummer 2 kompiliert und gibt im Wesentlichen gerade austest (siehe die letzte Zeile der Ausgabe), aber es stürzt auch mit dem Fehler ab:

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

Nummer 3 und 4 kompilieren erneut, aber sie werden nicht ausgegebentest und stürzt stattdessen sofort ab, jedoch mit einer aussagekräftigeren Ausgabe:

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 hat mich natürlich zumGCC Bug Tracker und einige andere Beiträge, die vorgeschlagen wurden, zu verwenden-pthread, was überhaupt nicht hilft.

Ich habe auch versucht, manuell gegen zu verlinkenwinpthread undpthread, aber das macht auch nichts.

Es gibt auch keinen Unterschied zwischen-std=c++11 und-std=gnu++11...

Ich bin im Moment wirklich verloren und weiß nicht, ob es überhaupt möglich ist, eine MinGW-Version zu bekommen, die dies unterstütztstd::thread, aber vielleicht übersehen ich nur einige Compiler-Flags. Ich hoffe jemand da draußen kann mir helfen!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage