Arduino 1.6.9/1.610 构建失败,显示“'constexprint' 没有命名类型”
Arduino 1.6.9/1.610 build fails with "'constexprint' does not name a type"
据说 Arduino 的 IDE > 1.6.2 支持 C++11。
我刚在 OSX 下载 运行 版本 1.6.9(正如其他人所报告的那样,此重现也在 Windows,1.6.9/1.6 .10).
我无法编译这个简单的程序:
constexpr int get_five() { return 5; }
void setup() {
Serial.begin(9600);
Serial.println(get_five());
}
void loop() {
}
我在尝试构建或上传时收到此错误:
sketch_jul25a:1: error: 'constexprint' does not name a type
constexpr int get_five() { return 5; }
^
exit status 1
'constexprint' does not name a type
我看过这个问题和答案,但它应该不再适用于我正在使用的 IDE 的 1.6.9 版本 - error: 'constexpr' does not name a type m- arduino ide
我已经深入研究了构建时 IDE 输出的临时文件,它似乎试图为函数自动生成 headers (我假设 multi-file sketch support),遇到constexpr
:
就做错事
#include <Arduino.h>
#line 1 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
#line 1 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
#line 1 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
constexprint get_five(); // **** <- This looks to be the culprit
#line 3 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
void setup();
#line 9 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
void loop();
#line 1 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
constexpr int get_five() { return 5; }
void setup() {
Serial.begin(9600);
Serial.println(get_five());
}
void loop() {
}
这是 Arduino IDE 中的错误吗?它是 OSX 独有的吗?是否有允许 constexpr
工作的解决方法?
在谷歌搜索中我发现一些 Arduino 库正在使用 constexpr
,所以我假设它可以在某些情况下工作。
这是 arduino-builder 的已知限制。
在修复之前,你可以在函数上面自己加一个原型。这将防止 IDE 错误地生成它自己的。
constexpr int get_five();
constexpr int get_five() { return 5; }
void setup() {
Serial.begin(9600);
Serial.println(get_five());
}
void loop() {
}
据说 Arduino 的 IDE > 1.6.2 支持 C++11。
我刚在 OSX 下载 运行 版本 1.6.9(正如其他人所报告的那样,此重现也在 Windows,1.6.9/1.6 .10).
我无法编译这个简单的程序:
constexpr int get_five() { return 5; }
void setup() {
Serial.begin(9600);
Serial.println(get_five());
}
void loop() {
}
我在尝试构建或上传时收到此错误:
sketch_jul25a:1: error: 'constexprint' does not name a type
constexpr int get_five() { return 5; }
^
exit status 1
'constexprint' does not name a type
我看过这个问题和答案,但它应该不再适用于我正在使用的 IDE 的 1.6.9 版本 - error: 'constexpr' does not name a type m- arduino ide
我已经深入研究了构建时 IDE 输出的临时文件,它似乎试图为函数自动生成 headers (我假设 multi-file sketch support),遇到constexpr
:
#include <Arduino.h>
#line 1 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
#line 1 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
#line 1 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
constexprint get_five(); // **** <- This looks to be the culprit
#line 3 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
void setup();
#line 9 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
void loop();
#line 1 "/Users/<my_username>/Documents/Arduino/sketch_jul25a/sketch_jul25a.ino"
constexpr int get_five() { return 5; }
void setup() {
Serial.begin(9600);
Serial.println(get_five());
}
void loop() {
}
这是 Arduino IDE 中的错误吗?它是 OSX 独有的吗?是否有允许 constexpr
工作的解决方法?
在谷歌搜索中我发现一些 Arduino 库正在使用 constexpr
,所以我假设它可以在某些情况下工作。
这是 arduino-builder 的已知限制。
在修复之前,你可以在函数上面自己加一个原型。这将防止 IDE 错误地生成它自己的。
constexpr int get_five();
constexpr int get_five() { return 5; }
void setup() {
Serial.begin(9600);
Serial.println(get_five());
}
void loop() {
}