假設Arduino的IDE> 1.6.2支持C++ 11。Arduino 1.6.9/1.610編譯失敗,''constexprint'沒有命名類型'
我剛剛剛剛下載並在OSX上運行版本1.6.9(和其他人報告的一樣,Windows上的這個repros也是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輸出的臨時文件ilding,似乎它正在嘗試自動生成功能(我承擔多文件草圖支持)頭,並且做錯誤的事情,當它遇到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
,所以我認爲它可以在某些情況下工作。
我遇到過同樣的問題。這個問題不是特定於OSX的。這個問題也出現在1.6.10中。 – esorton
爲標題中的錯誤命名更好,所以我批准了編輯。其他人可能不會有相同的錯誤,例如,如果他們使用'uint'等。希望這加上身體仍然足以幫助找到它。接受答案指出,這肯定是來自IDE本身的上游組件(組件是arduino-builder)中的錯誤。不過,他們傾向於在每次更新IDE時發佈一個全新的稍微更新的堆棧。 –