【问题标题】:How to disable specific compilation warnings from CPP compiler in VSCode? (preferably using build options)如何在 VSCode 中禁用来自 CPP 编译器的特定编译警告? (最好使用构建选项)
【发布时间】:2021-12-10 02:15:33
【问题描述】:

我正在使用 VSCode 和 ESP-IDF 对 Arduino 进行编程。一些 Arduino 库文件正在生成如下警告。

988/1135] Building CXX object esp-idf/arduino/CMakeFiles/__idf_arduino.dir/libraries/WiFi/src/WiFiScan.cpp.obj
/Users/sr/projects/gcp-iot/components/arduino/libraries/WiFi/src/WiFiScan.cpp:45:21: warning: 'const char* cipher_str(int)' defined but not used [-Wunused-function]
 static const char * cipher_str(int cipher)
                     ^~~~~~~~~~
[1003/1135] Building CXX object esp-idf/arduino/CMakeFiles/__idf_arduino.dir/libraries/WiFi/src/WiFiGeneric.cpp.obj
/Users/sr/projects/gcp-iot/components/arduino/libraries/WiFi/src/WiFiGeneric.cpp:187:21: warning: 'const char* auth_mode_str(int)' defined but not used [-Wunused-function]
 static const char * auth_mode_str(int authmode)
                     ^~~~~~~~~~~~~
[1013/1135] Building CXX object esp-idf/arduino/CMakeFiles/__idf_arduino.dir/libraries/Wire/src/Wire.cpp.obj
/Users/sr/projects/gcp-iot/components/arduino/libraries/Wire/src/Wire.cpp: In member function 'uint8_t TwoWire::requestFrom(uint16_t, uint8_t, bool)':
/Users/sriraj/projects/gcp-iot/components/arduino/libraries/Wire/src/Wire.cpp:363:15: warning: variable 'err' set but not used [-Wunused-but-set-variable]
     esp_err_t err = ESP_OK;

我尝试在不同的地方设置-Wno-unused-function 标志,但未能禁用这些警告。有人可以建议设置此构建选项的正确位置,因此我看不到这些警告。我在 MacOS 上使用 VSCode。提前谢谢你。

【问题讨论】:

  • 不要禁用所有警告——坏主意。找到您要禁用的警告并仅禁用该警告(例如未使用的功能)。警告是编译器帮助您编写更好代码的重要部分。
  • @DavidC.Rankin 同意 - 问题是如何仅禁用未使用的功能警告。我将更改标题以澄清

标签: c++ visual-studio-code arduino-esp32


【解决方案1】:

导航到您的ESP-IDF 目录并在esp-idf/tools/cmake 目录下查找build.cmake 文件。

build.cmake 文件中 - 查找名为 function(__build_set_default_build_specifications) 的部分 - 这包含在构建时执行的所有默认编译器选项。在此处包含-Wno-unused-function,保存并重新编译您的项目!

但请注意,这将在全局范围内禁用此警告并影响其他项目。

【讨论】:

  • 替代方案:用#ifdef#endif包围未使用的代码并保留警告。
猜你喜欢
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-31
  • 1970-01-01
相关资源
最近更新 更多