簡體   English   中英

C ++ 11 Threads,Error純虛函數調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM