Так что я решил дать C++ попробовать сегодня. Я загрузил MinGw и компилятор g ++, который поставляется вместе с ним. Я решил проверить следующий код:std :: thread работает в cygwin, но не в MinGw
#include <iostream>
#include <thread>
int foo()
{
std::cout << "foo" << std::endl;
}
int main()
{
std::thread t1(foo);
t1.join();
std::cout << "done" << std::endl;
return 0;
}
Затем я попытался скомпилировать его в командной строке, используя следующую строку:
g++ -std=c++11 main.cpp
, который работает на привет мир. Однако на этот раз он дал мне эту ошибку:
error: 'thread' is not a member of 'std'
Я попробовал тот же код с помощью г ++ обеспечивается Cygwin, и она работает. Так почему же он не работает в MinGw? Это устарело или что-то еще? Я хочу скомпилировать материал, используя C++ 11 и C++ 14, как на терминале cygwin, но вне среды cygwin.
У меня была эта проблема на днях ... Следующая ссылка может быть полезна в вашем ответе http://jaist.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/ mingw-builds/5.3.0/threads-posix/ – silvergasp
@NathanielBrough Обычно не рекомендуется ссылаться на конкретные версии вещей в ответе SO, это может привести к загрузке старого программного обеспечения вниз по линии. – user657267
@NathanielBrough Вы говорите, что это определенно тот случай, когда MinGw устарел и что, установив MinGw-64, он решит эту проблему? Кроме того, они одно и то же, или просто обновления одного анорта? – user3685285