c++ - 如何在 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
目录并在目录下查找build.cmake
文件esp-idf/tools/cmake
。
在build.cmake
文件中 - 查找名为的部分function(__build_set_default_build_specifications)
- 这包含在构建时执行的所有默认编译器选项。包括-Wno-unused-function
在此处,保存并重新编译您的项目!
但请注意,这将全局禁用此警告并影响其他项目。
推荐阅读
- haskell - 在 gi-gtk 中以编程方式创建和填充 TreeView 的示例
- uwp - Windows 10 UWP - 功能:商店上传期间的 Internet(客户端和服务器)选项错误
- javascript - 将“全选”选项添加到一系列复选框
- java - 如何在 spring mvc 中使用通用控制器和存储库
- go - 在本地开发并推送到 github 的正确 golang 工作流程是什么?
- c# - 将 Vector3 位置从一个相机视图复制到另一个
- docker - 如何在不运行进程的 K8S 上运行 utils POD
- python-3.x - 将python对象逐行写入文本文件
- openssl - g++ 使用 OpenSSL 和 MySQLClient 编译静态
- python - 使用 RDKit 计算 sdf 文件和结构 SMILE 之间的 Tanimoto 相似性?