MinGW e std :: thread
Então, eu tenho tentado obter o código a seguir para compilar e executar no Windows usando um compilador MinGW.
#include <iostream>
#include <thread>
void test()
{
std::cout << "test" << std::endl;
}
int main()
{
std::thread t(test);
}
Estou compilando com o seguinte comando:
g++ -std=c++11 test.cpp -o test.exe
Agora o problema é a versão do MinGW que deve ser usada e eu tentei todas as versões que eu conheço.
MinGW-builds:thread-win32MinGW-builds:thread-posixMinGW-w64:stdthread rubenvb experimentalMinGW-w64:stdthread experimental rubenvb 4.7Número 1 não funciona, desde o GCCaparentemente só suporta pthread coisas internamente.
O número 2 compila e essencialmente gera saídastest
(veja a última linha da saída), mas também falha com o erro:
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
Número 3 e 4 novamente compilar, mas eles não saemtest
e, em vez disso, cai instantaneamente, mas com uma saída mais descritiva:
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.
O Google me trouxe, é claro, para oRastreador de erros do GCC e alguns outros posts, que sugeriam usar-pthread
, o que não ajuda em nada.
Eu também tentei ligar manualmente contrawinpthread
epthread
, mas isso não faz nada também.
Também não há diferença entre-std=c++11
e-std=gnu++11
...
Eu estou realmente perdida agora e não sei, se é possível obter uma versão do MinGW, que suportastd::thread
, mas talvez eu estou apenas com vista para alguns sinalizadores de compilador. Espero que alguém possa me ajudar!