Linux上的gcc 4.8.2 - 使用线程崩溃的简单程序

时间:2014-06-29 15:00:06

标签: linux multithreading gcc c++11 devtoolset

我刚在Centos上安装了gcc 4.8.2(我使用的是devtoolset-2)。我用线程编写了一个非常简单的程序。它编译好但在执行时崩溃了吗?

 #include <thread>
 #include <iostream>

 void test() 
 { 
   std::cout << "test\n"; 
 }

 void main()
 {
      std::thread t(test);
      t.join();
      return 0;
 }

我编译:

 scl enable devtoolset-2 bash
 c++ -o test test.cpp -std=c++11

我非常惊讶。我必须做错事,不要使用write libc ++等?你知道如何调试这个吗?谢谢! 我在Mac(Maverick)上编译它,显然它没有使用gcc,它工作正常。

1 个答案:

答案 0 :(得分:3)

在Linux上,您应该使用命令行选项-pthread与GCC和Clang进行编译和链接。在您的情况下,命令行应如下所示:

g++ -std=c++11 -Wall -Wextra -pthread test.cpp -o test

有关详细信息,请参阅以下链接: