下面是我正在尝试编译的一个非常小的C++11线程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++线程1.cpp -pthread -std=c++11
我得到以下错误
纯虚拟方法
终止调用而没有活动异常
已中止
怎么了,有人能帮忙吗?
请注意,我正在用ARM A8处理器在Beaglebone Black上编译这个
发布于 2014-05-11 20:14:42
这是libstdc++或Clang中的一个bug,这取决于您问谁。如果您使用的是2013年10月之后发布的Clang版本,它应该可以工作。当您运行g++ --version时,您看到了什么
作为解决办法,您可以尝试使用此命令行。我不保证它会起作用,请随你的结果发表评论。
g++ -pthread -std=c++11 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4} thread1.cpp以下是bug报告:
bug.cgi?id=12730
这是对Clang司机的官方修正:
https://llvm.org/viewvc/llvm-project?view=revision&revision=191707
我不知道这之前是否也是GCC司机的一个错误,和/或它是否已经修复。
发布于 2016-06-19 09:58:39
在Raspberry Pi 2型号B上遇到了同样的问题,它的臂皮质为A7.使用g++-4.7编译,最终发现罪魁祸首是一个编译器标志:
-march=armv7-ahttps://stackoverflow.com/questions/23583317
复制相似问题