如何在VSCode中禁用CPP编译器的特定编译警告?(最好使用构建选项)



我使用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。提前谢谢你。

进入ESP-IDF目录,在esp-idf/tools/cmake目录下查找build.cmake文件

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

但要注意,这将全局禁用此警告,并影响其他项目。

相关内容

  • 没有找到相关文章

最新更新