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

时间:2012-11-17 16:29:08

标签: c++ multithreading gcc c++11 cygwin

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

1 个答案:

答案 0 :(得分:-1)

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

g++ --std=c++0x -o ...

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