HAO*_*LEE 0 c++ multithreading g++ c++11
我尝试在c ++中编译一个简单的c ++代码,但是当我尝试在Windows中使用g ++编译它时,总是返回错误。
我用
g++ -std=c++0x -pthread main.cpp
Run Code Online (Sandbox Code Playgroud)
错误消息是:
std::thread' is defined in header '<thread>'; did you forget to '#include <thread>'?
Run Code Online (Sandbox Code Playgroud)
这没有意义,因为代码只是
#include<thread>
void f(int i) {}
int main() {
std::thread t(f, 1);
t.join();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我相信这段代码可以在linux上运行,我想知道为什么它不能在Windows下运行。
要使用它,std::thread您必须将代码编译为C ++ 11,C ++ 14或C ++ 17。
您正在传递-std=c++0x给gcc。c++0x是gcc C ++ 11预发行版本的名称,取决于您的编译器版本,可能不完整。
将您的gcc命令行更改为-std=c++11,很可能情况会更好。如果不是,则可能需要获取较新版本的编译器。