[英]C++ 11 Threads, Error Pure virtual function called
這是一個非常小的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上進行編譯
這是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驅動程序中的錯誤,和/或是否已修復。
使用ARM Cortex-A7在Raspberry Pi 2 Model B上遇到同樣的問題。 用g ++ - 4.7編譯,結果證明罪魁禍首是編譯器標志:
-march=armv7-a
雖然clang有一個相關的問題,但這完全是一個gcc bug現在記錄在: https : //gcc.gnu.org/bugzilla/show_bug.cgi?id = 62100
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.