我遇到了无法使用线程的问题,因为我不断收到错误消息“线程”不是“ std”的成员。”
我正在将MinGW和c ++ 11用作编译器标志。.在昨天制作的小程序中,它工作正常。基本上,我想在玩带有伪随机数的猜谜游戏时玩“哔哔”歌曲。
;
它总是给我同样的错误int rnumber, guess, maxrand;
std::thread t1(pinkpanther);
t1.detach();
cout << "What do you want the maximum Number to be? ";
cin >> maxrand;
rnumber = randy(maxrand);
//Start
cout << endl << "This is a game!" << endl << "You have 5 tries to guess the random number generated by this program, have fun" << endl;
for (int i = 0; i < 5; i = i + 1)
{
cout << "Your guess: ";
cin >> guess;
if (guess < rnumber)
{
cout << "Your guessed number is smaller than the answer! Try again!" << endl << endl;
}
else if (guess > rnumber)
{
cout << "Your guessed number is bigger than the answer! Try again!" << endl << endl;
}
else
{
cout << "you guessed the right number!";
break;
}
}
return 0;
而且我真的不知道为什么了
编辑:pinkpanther()仅播放我在“哔哔”中找到的pinkpanther歌曲
Edit2:我有几个库(Windows,线程,ctime和ctdlib)
答案 0 :(得分:1)
您使用了什么MinGW版本?如果您使用Win32线程模型,则它不支持C ++ 11线程。您应该改为使用POSIX线程模型(基于Winpthreads)来抓取一个,但是请注意,这是个问题。
答案 1 :(得分:0)
您提供的代码永远不会month
。那么编译器应该如何知道#include <thread>
是什么?
通过在文件顶部添加std::thread
来解决问题。
还要确保使用的编译器实际上支持C ++ 11(或更高版本)和#include <thread>
。