如何在Cygwin GCC 4.7.2下使用C++ 11的std :: thread

Wil*_*ang 7 c++ multithreading gcc cygwin c++11

我一直在尝试使用新引入的C++ 11 std :: thread功能在Cygwin下编译多线程hello-world程序,但没有成功.我自己编译并安装了GCC 4.7.2,并且相同的代码在Linux下使用相同版本的GCC时没有任何问题.我得到的第一个错误是编译器无法识别-pthread标志.经过一段时间的研究,我注意到有人在Cygwin上说这个标志应该是-lthread.我做了更改,错误消失了,但又发生了一系列错误,告诉我线程不是std的成员.我想知道它是否是由安装过程中编译器的错误配置引起的,或者在Cygwin下根本不支持std :: thread?

gru*_*zip -1

这看起来像您没有使用适当的标准库标志编译程序。如果你想编译 C++11,你应该使用:

g++ --std=c++0x -o ...
Run Code Online (Sandbox Code Playgroud)

--std标志设置适当的语言兼容性级别。如果这没有帮助,请将您收到的错误消息作为源列表发布。