在Windows 8中编译C ++线程

时间:2015-04-03 19:11:02

标签: c++ eclipse multithreading c++11

我正在尝试使用Eclipse Luna在Windows 8中编译此代码。 我收到了错误:' thread'不是' std'

的成员
#include <thread>
#include <iostream>

void func() {
  std::cout << "Hello thread!" << std::endl;
}

int main() {
  std::thread t(func);
  t.join();
  return 0;
}

我使用了Eclipse MinGW,GCC和Eclipse CygWin,GCC。 我使用了以下设置:-pthread -std = c ++ 11 C / C ++ Build - &gt;设置 - &gt;工具设置 - &gt; GCC C ++编译器 - &gt;其他 - &gt;其他旗帜 但是错误仍然存​​在。 我查看了thread.h的来源。在那里我找到了这条线

#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)

我在其中定义了_GLIBCXX_HAS_GTHREADS_GLIBCXX_USE_C99_STDINT_TR1 C / C ++ Build - &gt;设置 - &gt;工具设置 - &gt; GCC C ++编译器 - &gt;预处理器 - &gt;定义的符号。 这使编译错误消失,但我得到了一堆似乎来自系统库的其他错误。 无论如何:定义符号看起来更像是&#34; hack&#34;比官方&#34;和推荐的解决方案
顺便说一句:我也尝试使用Code :: Blocks而不是Eclipse,但我得到了同样的错误。

0 个答案:

没有答案