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

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

我一直在尝试使用新引入的 C++ 11 std::thread 功能在 Cygwin 下编译多线程 hello-world 程序,但没有成功。我自己编译安装了GCC 4.7.2,同样的代码在同版本GCC的Linux下运行没有任何问题。我遇到的第一个错误是编译器无法识别 -pthread 标志。研究了一段时间后,我注意到有人在 Cygwin 上说这个标志应该是 -lthread。我进行了更改并且错误消失了,但是出现了另一系列错误,告诉我线程不是 std 的成员。请问是安装时编译器配置错误导致的,还是Cygwin下根本不支持std::thread?

最佳答案

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

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

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

关于c++ - 如何在Cygwin GCC 4.7.2下使用C++ 11的std::thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13432432/

相关文章:

java - 运行 future 回调的参与者的线程安全

c++ - boost 异常和线程安全 - 优于常规异常处理

c++ - 没有匹配的调用函数(期望引用指针而不是指针)

c++ - 尝试读取和写入字符串时发生访问冲突?

c++ - 如何使父类的模板方法对子类可见?

c++ - 使用 MSDN 库进行多屏幕捕获

Java - 迭代 IP 地址列表并以 IP 地址作为参数调用线程

c - 递归程序中编译器的优化

gcc - 避免 move 构造函数的成员数组对象的初始化

java - 添加到集合 O(n)?