C++;什么决定了C+的哪个版本+;可以在特定的体系结构上运行(如Arduino) 我知道C++有11个方面的变化,比如C++ 14或C++。如果我有一个微控制器或其他计算机设备,是什么决定了代码是否可以在这台计算机上运行。即,什么决定Arduino是否可以运行C++14代码

C++;什么决定了C+的哪个版本+;可以在特定的体系结构上运行(如Arduino) 我知道C++有11个方面的变化,比如C++ 14或C++。如果我有一个微控制器或其他计算机设备,是什么决定了代码是否可以在这台计算机上运行。即,什么决定Arduino是否可以运行C++14代码,c++,c++11,g++,C++,C++11,G++,是我机器上的编译器,还是其他系统处理器上的解释器?还是什么?这是编译器的版本。如果编译器支持语法/C++版本,并且编译器适用于该平台,则将生成有效代码。@Kiril Kirov的答案是正确的,这主要取决于编译器的可用性,但其他一些因素也会受到影响 < >编译器负责将C++代码转换为本机指令集中的机器代码。 它还依赖于C++标准库,显然需要使用编译器编译系统。 请注意,在此操作之后,生成的代码与通过其他方式(使用C编译器或手工编写)生成的其他本机代码没有本质上的区别,因此没有理由不由微处理器执行

是我机器上的编译器,还是其他系统处理器上的解释器?还是什么?

这是编译器的版本。如果编译器支持语法/C++版本,并且编译器适用于该平台,则将生成有效代码。

@Kiril Kirov的答案是正确的,这主要取决于编译器的可用性,但其他一些因素也会受到影响

< >编译器负责将C++代码转换为本机指令集中的机器代码。 它还依赖于C++标准库,显然需要使用编译器编译系统。 请注意,在此操作之后,生成的代码与通过其他方式(使用C编译器或手工编写)生成的其他本机代码没有本质上的区别,因此没有理由不由微处理器执行

您还需要一个知道目标微控制器(处理器+RAM+闪存或ROM)内存布局的链接器

您还需要一种将代码闪存到系统的方法,例如USB链接和驱动程序


在arduino的例子中,您可以发现所有这些元素都是现成的,因为它是一个已知的平台(arduino根据版本在AVR或ARM上运行,因此可能的编译器分别是
AVR gcc
ARM none eabi gcc
),但在更奇特的情况下,它不是一个给定的编译器(你很可能无法闪存万事达卡)。

任何计算机平台原则上都可以支持任何任意编程语言,只要有人为其编写了编译器

处理器本身不知道使用哪种编程语言,但即使不是,也不一定排除通过源代码翻译在编译器中支持其他语言或方言


< C++ > C++ C++语言中的“C++”标准,你是否需要在你的ARDINO上提供新的C++标准,完全是在提供你所使用的编译器工具链和标准库的人的心血来潮。

我希望C++不被解释为ARDUINO。你需要的是一个C++ 11/C++ 14编译器,它的目标是你的平台。“轻微的变化”无论如何。@dureuill我看到了,通过平台,这将是Arduino上的任何芯片?(比如ARM32或其他东西)?Arduino不是一个架构。Arduiono运行在AVR、ARM……上。它只是一个函数/类的集合,有助于快速开发对uC硬件的访问,并提供一些额外的帮助材料。编译器必须为底层设备生成特定的代码,并且必须从编译环境中选择特定于cpu的LIB(AdvestMeX,井手),这里是一个链接,它解释如何编译C++ 11到ARDUINO:因此如果编译器能够编译平台的代码(意思是,在这种情况下,ARDUINO),编译器可以理解C++版本,那么可以运行可运行的代码吗?@