我刚在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,它工作正常。
答案 0 :(得分:3)
在Linux上,您应该使用命令行选项-pthread
与GCC和Clang进行编译和链接。在您的情况下,命令行应如下所示:
g++ -std=c++11 -Wall -Wextra -pthread test.cpp -o test
有关详细信息,请参阅以下链接: