Arduino 1.6.9及更高版本的c++支持
Arduino 1.6.9 and later c++ support
我要为Arduino创建一个应用程序。目前我安装的是1.6.9版本。我想用c++。我知道不支持异常和动态分配,但是我从哪里可以得到不支持的c++特性的确切列表?网上有一些信息,但有些很老,有些太笼统了……
提前感谢,
在AVR Libc的Atmel文档中是以下问题的答案我可以在AVR上使用c++吗?:
基本上是的,c++是支持的(当然,假设你的编译器已经配置和编译为支持它)。以.cc, .cpp或.C结尾的源文件将自动导致编译器前端调用c++编译器。或者,c++编译器可以通过avr-c++这个名字显式调用。但是,目前还没有对libstdc++的支持,libstdc++是一个完整的c++实现所需的标准支持库。这对可编译的c++程序施加了许多限制。其中包括:
- 显然,没有c++相关的标准函数、类和模板类可用。操作符new和delete没有实现,尝试使用它们将导致链接器报错未定义的外部引用。(这可能会被修复)
- 一些提供的include文件不是c++安全的,也就是说,它们需要被包装成
extern"C" { . . . }
(这当然也可以修复)- 不支持异常。由于异常在c++前端默认是启用的,因此需要在编译器选项中使用-fno-exceptions显式地关闭异常。如果做不到这一点,链接器将报错对__gxx_personality_sj0的未定义外部引用。
支持构造函数和析构函数,包括全局的。
相关文章:
- llvm 9在10.15之前的mac版本上支持std::文件系统吗
- 错误:不支持 GLSL 3.30.支持的版本包括:1.10、1.20、1.30、1.00 ES、3.00 ES、3.10
- 安卓版本> 7支持LD_PRELOAD吗?
- 使用共享库版本支持不同 ABI 的最佳实践是什么?
- 在上下文初始化之前查询支持的最高 OpenGL 版本?
- 如何在 Android 原生版本中正确支持不同C++ STL
- OpenGL 版本不等于支持的着色器版本
- 支持 CUDA 统一内存的系统分配器的操作系统版本
- 提升二进制文件读取错误不支持的版本
- 既然C++14支持哪个版本的GCC
- 如何获得GCC版本支持特定功能
- Solaris 上的 GNU gcc/g++ 编译器版本,支持 C++11/14
- 我将如何在客户端支持多个版本的 TLS
- 我应该将哪个 Boost 版本与支持 C++03 的编译器一起使用
- cuda 5.0支持的c++版本
- 是否有支持右值的 ref 指针版本
- 最低合理支持的GCC版本是什么
- OS X 上的 OpenGL 版本支持
- 如何检查特定 g++ 版本支持 C++11 的程度
- 哪个gcc和g++版本支持c和c++的哪个标准