我注意到,gcc的AVR落后于gcc的主要发展潮流。例如,AVR8的gcc在Atmel Studio 7和Arduino中为4.9.2,在Atmel Studio中AVR32为4.4.7。同时,gcc 4.9.4是目前的4.9版,开发正在推动多个分支5.x、6.x和7.x (https://gcc.gnu.org/develop.html)。
更新(2019年11月): Atmel Studio和Arduino工具链现在达到gcc 5.4,它仍然只完全实现C++11。
我担心的是,我可能会遇到早期的实现问题,因为我使用了C++语言最近添加的特性和更老的编译器。另外,gcc的AVR支持的发展过程尚不清楚。
发布于 2017-06-17 20:54:01
如果你想使用GCC的某个版本,就用它吧。构建它自己或得到一个预构建,没有理由你需要使用Atmel沙箱。
发布于 2019-11-05 17:19:49
概述
gcc支持使用某些构建选项编译AVR,并传递正确的标志。gcc建造的那些avr专用建筑选项是avr-gcc.
Atmel和Arduino都提供自定义构建的gcc和其他所需的工具链(binutils,avr-libc)。Arduino实际上是Atmel工具链的下游,Arduino只在Atmel更新其工具链时才更新。
有一个由Zak系综提供的漂亮的博客文章,它最近为工具链中的所有东西(AVRDUDE、binutils、AVRDUDE)构建了版本,可用于Windows (以及Make和AVRDUDE)、Linux和MacOS。此外,Arch还作为一个包提供了一个最新的avr 这里版本.
对于Arduino,我提到的博客文章详细介绍了如何将更新的avr-gcc构建集成到Arduino IDE中,如果您想自己构建avr-gcc,则包含一个构建脚本。我没有使用爱特梅尔工作室,也不知道是否有可能以类似的方式交换avr-gcc的构建,但是发布说明让我觉得这是可能的。
注意事项:
摘要:
Atmel和Arduino包括Arduino,它只支持gcc通过5.x。这让您可以访问C++11,您可以将其替换为一个新版本的avr、binutils和其余的,并继续使用该IDE (至少对Arduino是如此)。如果您想释放您选择的IDE,请使用AVRDUDE或arduino-cli (它无论如何都使用AVRDUDE ),然后从IDE或命令行调用它们。最后,据我所知,目前还没有现代的>= C++11标准库实现。
https://stackoverflow.com/questions/44604075
复制相似问题