Arduino 1.6.9及更高版本的c ++支持

时间:2016-10-11 03:30:52

标签: c++ arduino

我要为Arduino创建一个应用程序。目前我安装了1.6.9版本。我想使用C ++。我知道不支持异常和动态分配,但在哪里可以获得不支持哪些C ++功能的确切列表? 互联网上有一些信息,但有些信息很旧,有些信息太笼统......

提前致谢, 甲

1 个答案:

答案 0 :(得分:1)

documentation of Atmel for AVR Libc中回答以下问题我可以在AVR上使用C ++吗?

  

基本上是的,支持C ++(假设你的编译器已被配置和编译以支持它,当然)。以.cc,.cpp或.C结尾的源文件将自动导致编译器前端调用C ++编译器。或者,可以通过名称avr-c ++显式调用C ++编译器。   但是,目前还没有对libstdc ++的支持,libstdc ++是完整C ++实现所需的标准支持库。这对可编译的C ++程序施加了许多限制。其中包括:

     
      
  • 显然,没有任何与C ++相关的标准函数,类和模板类可用。
  •   
  • 未实现运算符new和delete,尝试使用它们将导致链接器抱怨未定义的外部引用。 (这可能是固定的。)
  •   
  • 一些提供的包含文件不是C ++安全的,i。即他们需要被包裹起来   extern"C" { . . . }   (这当然也可以修复。)
  •   
  • 不支持例外情况。由于在C ++前端默认启用了异常,因此在编译器选项中使用-fno-exceptions显式需要关闭它们。如果不这样做,链接器会抱怨对__gxx_personality_sj0的未定义外部引用。
  •   
     

支持构造函数和析构函数,包括全局函数。

相关问题