gpt4 book ai didi

c++ - 使用 -march 编译会导致线程显示 "pure virtual method called"

转载 作者:太空狗 更新时间:2023-10-29 12:41:06 24 4
gpt4 key购买 nike

我正在尝试通过带有 -march=armv8-a 标志的 gcc 编译我的 C++ Raspberry Pi 3 代码。但是,使用此标志会导致我的线程失败,方法是说 pure virtual method called。我知道它是 -march=armv8-a 标志,因为当我在没有它的情况下编译它时,线程会再次开始工作。

请注意:线程甚至没有启动,它只是提供了一个调用的纯虚方法

有人可以在他们的 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;
}

最佳答案

由于 armv8-a 使用 64 位架构,使用 -march=armv8-a 标志将为 64 位机器编译。但是,许多 Raspberry Pi 操作系统(图像)是 32 位的,这可能会导致崩溃或错误。

来源:https://stackoverflow.com/users/1505939/m-m

关于c++ - 使用 -march 编译会导致线程显示 "pure virtual method called",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44104247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com