ESP-IDF:如何禁用特定警告

有时 ESP-IDF 程序会输出大量无用的警告,你需要屏蔽它们以便更清晰地查看错误信息,例如:

suppress_warning.txt
/home/user/MyESPIDFProject/src/Network.cpp:382:1: warning: missing initializer for member 'httpd_uri::user_ctx' [-Wmissing-field-initializers]

第一步是确定需要屏蔽的警告。很简单,只需查看警告消息末尾的 flag。本例中是 -Wmissing-field-initializers。要屏蔽此类警告,在 -W 后面加上 no 即可:-Wno-missing-field-initializers

然后按照 ESP-IDF:如何添加自定义编译器 flag 中的方法将屏蔽 flag 添加到项目中:将以下内容添加到 main/CMakeLists.txt(不要与项目根目录下的 CMakeLists.txt 混淆):

main/CMakeLists.txt
# 屏蔽特定警告
target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-missing-field-initializers)

Check out similar posts by category: ESP-IDF, C/C++