如何修复 ESP32 ESP_LOGI(...) 错误: expected ')' before 'msg'

问题:

你的项目中有类似这样的代码

esp_log_fix.cpp
ESP_LOGI("MyTag", msg);

其中 msgconst char*,但项目编译失败,错误消息类似

esp_logi_error.txt
src/main.cpp:280:26: error: expected ')' before 'msg'
  280 |         ESP_LOGI("MyTag", msg);

解决方案

format 参数不能是任何字符串,需要是字符串常量。将你的代码替换为

esp_logi_fix.cpp
ESP_LOGI("MyTag", "%s", msg);

Check out similar posts by category: C/C++, ESP8266/ESP32