[英]Stringification working with USERNAME:PASSWORD but not for SERIAL:TOKEN?
我有以下Makefile(如果您問我為什么包含\\“,可以參考我之前的問題 )
BOARD_TAG = mega2560
CPPFLAGS = -DUSERNAME=\"$(USERNAME)\" -DPASSWORD=\"$(PASSWORD)\"
include $(ARDMK_DIR)/Arduino.mk
和代碼:
void setup() {
Serial.begin(9600);
String auth_raw2(USERNAME ":" PASSWORD);
Serial.println(auth_raw2);
}
void loop() {}
當我使用make USERNAME=hello PASSWORD=world
編譯時,一切正常,並且看到'hello:world'被打印出來。
但是,如果我將USERNAME替換為SERIAL,將PASSWORD替換為TOKEN:
BOARD_TAG = mega2560
CPPFLAGS = -DSERIAL=\"$(SERIAL)\" -DTOKEN=\"$(TOKEN)\"
include $(ARDMK_DIR)/Arduino.mk
和
void setup() {
Serial.begin(9600);
String auth_raw2(SERIAL ":" TOKEN);
Serial.println(auth_raw2);
}
void loop() {}
我收到錯誤, macro.ino:5:27: error: expected ')' before string constant
請注意,$ USERNAME在我的Linux機器上定義為“ disappearedng
而$ PASSWORD,$ SERIAL和$ TOKEN未定義。
為什么對USERNAME:PASSWORD無效,但對SERIAL:TOKEN無效?
因此,似乎Arduino覆蓋了$ SERIAL參數。
將SERIAL切換為DSERIAL使編譯正常
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.