我正在尝试通过带有-march=armv8-a
标志的gcc编译我的C ++ Raspberry Pi 3代码。但是,使用此标志会导致我的线程失败,只能说pure virtual method called
。我知道它是-march=armv8-a
标志,因为当我在没有它的情况下编译它时,线程会再次开始工作。
请注意:线程甚至没有启动,只是提供pure virtual method called
有人可以在他们的Raspberry Pi 3上用-march=armv8-a
编译这个并报告他们得到了什么吗?
#include <iostream>
#include <thread>
#include <unistd.h>
void threadedFunction()
{
std::cout << "Hello from thread" << std::endl;
}
int main()
{
std::thread t1(threadedFunction);
sleep(2);
return 0;
}
答案 0 :(得分:0)
由于armv8-a
使用64位体系结构,因此使用-march=armv8-a
标志将为64位计算机进行编译。但是,许多Raspberry Pi OS(图像)都是32位,可能会导致崩溃或错误。