所以我今天决定尝试一下c++。我下载了MinGw和它附带的g++编译器。我决定测试以下代码:
#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 提供的 g++ 尝试了完全相同的代码,并且它有效。那么为什么它在 MinGw 中不起作用呢?是不是已经过时了或者什么的?我想使用 c++11 和 c++14 编译东西,就像在 cygwin 终端上一样,但在 cygwin 环境之外。
如果您想使用 MinGW-w64(或者更确切地说 Windows 上的 GCC),则需要使用 posix 线程支持进行编译std::thread
,大概您下载了带有本机 Windows 线程的版本。
查看 mingw-builds 文件夹目标64 bit http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/ or 32 bit http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/并选择带有 posix 线程的版本。您还需要选择异常处理方法,如果您没有理由选择其他方法,则坚持使用 GCC 默认值 seh(64 位)和 dwarf(32 位)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)