这是一个非常小的C ++ 11 Thread API代码,我正在尝试编译
#include<iostream>
#include<thread>
using namespace std;
void threadFunction(void)
{
cout<<"hello from thread:";//<<this_thread::get_id()<<endl;
}
int main()
{
std::thread t(threadFunction);
t.join();
return 0;
}
在编译时作为
g ++ thread1.cpp -pthread -std = c ++ 11
我收到以下错误
称为纯虚方法
在没有活动异常的情况下终止被叫
中止
有什么不对,请有人帮忙
请注意,我正在使用ARM A8处理器在Beaglebone Black上进行编译
答案 0 :(得分:4)
这是libstdc ++或Clang中的错误,具体取决于您的要求。如果您使用2013年10月之后发布的Clang版本,它应该可以工作。您在运行g++ --version
时看到了什么?
作为解决方法,您可以尝试使用此命令行。我不保证它会起作用;请在结果上发表评论。
g++ -pthread -std=c++11 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4} thread1.cpp
这是错误报告:
http://llvm.org/bugs/show_bug.cgi?id=12730
这是对Clang司机的正式修复:
https://llvm.org/viewvc/llvm-project?view=revision&revision=191707
我不知道这是否也是GCC驱动程序中的错误,并且/或者它是否已被修复。
答案 1 :(得分:3)
使用ARM Cortex-A7在Raspberry Pi 2 Model B上遇到同样的问题。 用g ++ - 4.7编译,结果证明罪魁祸首是编译器标志:
select
....
from
dkcd
right join
a
, b
答案 2 :(得分:0)
虽然clang有一个相关的问题,但这完全是一个gcc bug现在记录在:https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62100