浏览了一本C++0x货币书,想试着运行一下示例代码。这是最基础的代码。
似乎是某种设置/库问题。有人熟悉这个吗?
#include <iostream>
#include <thread>
void hello()
{
std::cout<<"Hello Concurrent World\n";
}
int main(int argc, char *argv[])
{
std::thread t(hello);
t.join();
}
编译使用:
g++ -std=c++0x -g -o pgm pgm.cpp
触发方式:
Program received signal SIGSEGV, Segmentation fault.
_dl_fixup (l=0x7ffff7b0992c, reloc_arg=<value optimized out>) at ../elf/dl-runtime.c:147
147 ../elf/dl-runtime.c: No such file or directory.
in ../elf/dl-runtime.c
似乎是某种设置/库问题。有人熟悉这个吗?
std::thread
并不是标准的(至少目前不是)。一旦C++0x及其实现最终确定,事情可能会并且很可能会发生变化。现在,如果您不能使用std::thread
,那么您只需要其他标志来启用替代选项,如TBB或OpenMP。编译器和链接器标志是必要的邪恶,所以尽量与之相处... - user355252