Ric*_*cky 3 c++ cmake esp32 esp-idf
我有一个最初是为 Particle 设备编写的项目,我们正在从他们的设备转向 ESP32。我一直致力于将我们的一个设备的代码移植到 esp-idf,现在收到大量与 switch 语句相关的警告,其中没有默认值,因此无法编译。由于某种原因,无论粒子设备使用什么编译器,都不关心这个问题。虽然我当然可以检查并更正代码,但现在不是这样做的时间或地点,我需要抑制这些警告。最终我们将纠正原始代码并推送到这个分支。
../main/Services/ConfigurationParser.cpp:295:16: error: enumeration value 'psAmbientTemperature' not handled in switch [-Werror=switch]
Run Code Online (Sandbox Code Playgroud)
我不太了解这个平台或编译器,不知道如何在以后抑制它们,并且无法在其他地方找到信息。任何帮助是极大的赞赏。
ESP IDF 构建系统-Werror默认启用 GCC 选项。这会导致 GCC 将所有警告视为错误。您需要告诉 CMake 扭转这一情况,这需要向 GCC 添加命令行选项。
假设带有警告的代码完全包含在名为“main”的组件(默认情况下)中,只需编辑该文件main/CMakeLists.txt并将以下行添加到文件底部以仅抑制您的特定警告:
target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-error=switch)
Run Code Online (Sandbox Code Playgroud)
或者这样可以阻止所有警告被视为错误:
target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-error)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2911 次 |
| 最近记录: |