Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用-march编译会导致线程说;纯虚拟方法称为; 我试图通过GCC编译一个C++树莓PI 3代码,代码为< >三月= ARMV8 A/标志。但是,使用此标志会导致线程失败,原因是说纯虚拟方法名为。我知道它是-march=armv8-a标志,因为当我在没有它的情况下编译它时,线程会重新开始工作_C++_Linux_Multithreading_Gcc_Raspberry Pi - Fatal编程技术网

使用-march编译会导致线程说;纯虚拟方法称为; 我试图通过GCC编译一个C++树莓PI 3代码,代码为< >三月= ARMV8 A/标志。但是,使用此标志会导致线程失败,原因是说纯虚拟方法名为。我知道它是-march=armv8-a标志,因为当我在没有它的情况下编译它时,线程会重新开始工作

使用-march编译会导致线程说;纯虚拟方法称为; 我试图通过GCC编译一个C++树莓PI 3代码,代码为< >三月= ARMV8 A/标志。但是,使用此标志会导致线程失败,原因是说纯虚拟方法名为。我知道它是-march=armv8-a标志,因为当我在没有它的情况下编译它时,线程会重新开始工作,c++,linux,multithreading,gcc,raspberry-pi,C++,Linux,Multithreading,Gcc,Raspberry Pi,请注意:线程甚至没有启动,它只提供了一个名为 有人能在Raspberry Pi 3上用-march=armv8-a编译这篇文章并报告他们得到了什么吗 #include <iostream> #include <thread> #include <unistd.h> void threadedFunction() { std::cout << "Hello from thread" << std::endl; } int ma

请注意:线程甚至没有启动,它只提供了一个名为

有人能在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;
}
#包括
#包括
#包括
void threadedFunction()
{

std::cout由于
armv8-a
使用64位体系结构,因此使用
-march=armv8-a
标志将为64位机器编译。但是,许多树莓皮OS(图像)是32位的,可能会导致崩溃或错误


信用证:

为什么你们都
detach()
ing和
join()
ing一个线程?@KevinDuarte它仍然是错误的。这样做应该会得到一个例外,因为一旦你
detach
ed,你就不能
加入
。@KevinDuarte:“调用detach*之后,这个不再拥有任何线程。”如果在删除
detach()时问题消失
,我猜是未定义的行为。与gcc相比,您的代码更有可能存在bug。gcc是一个编译器,世界各地都使用它来编译数千个多线程程序,并且具有广泛的内部测试套件。仅仅因为某个特定的编译器选项导致代码崩溃,并不一定意味着它是一个问题编译器选项。例如,编写一些与
-O2
崩溃的代码应该不会太难。问题不在于此编译器选项,而在于错误代码。查找代码中的错误,而不是编译器中的问题。我发现gcc不太可能有这样一个常见的错误,这是由如此微不足道的代码所表现出来的代码。更有可能的是,您使用的gcc存在某种配置或安装问题。可能一些运行库没有安装,或者链接了错误的库。不幸的是,stackoverflow.com上只有一个用户知道您的gcc安装的详细信息,即它是如何配置的。当然,那个用户就是你。