3

我刚刚在 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

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

4

1 回答 1

3

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

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

有关更多信息,请参阅以下链接:

于 2014-06-29T15:29:33.310 回答