簡體   English   中英

使用USERNAME:PASSWORD進行字符串化處理,但不能使用SERIAL:TOKEN進行字符串化處理嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM