这是我正在尝试编译的非常简单的 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++ thread1.cpp -pthread -std=c++11
我收到以下错误
纯虚方法调用
在没有事件异常的情况下终止调用
中止
有什么问题吗,求大神帮忙
请注意,我是在配备 ARM A8 处理器的 Beaglebone Black 上编译的
最佳答案
这是 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 驱动程序中的错误,和/或是否已修复。
关于C++ 11 线程,错误调用纯虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23583317/