• ESP32IDF出现Syntax Warning in cmake code at column 47报错


    前言

    (1)ESP32的资料还是挺难找的,遇到bug处理起来挺折磨人的。今天分享一个我遇到的bug,以及处理思路。

    报错日志

    (1)前天在些博客的时候,做测试发现了一个奇怪的bug,报错日志如下。

    CMake Error at F:/HoloCubic/IDF/Enter_ESP-IDF_container_directory/esp-idf/tools/cmake/component.cmake:224 (message):
      CMake Warning (dev) at build_properties.temp.cmake:8:
    
        Syntax Warning in cmake code at column 47
    
    
    
        Argument not separated from preceding token by whitespace.
    
      Call Stack (most recent call first):
    
        F:/HoloCubic/IDF/Enter_ESP-IDF_container_directory/esp-idf/tools/cmake/scripts/component_get_requirements.cmake:3 (include)
    
      This warning is for project developers.  Use -Wno-dev to suppress it.
    
    
    
      fatal: not a git repository (or any of the parent directories): .git
    
      CMake Error at
      F:/HoloCubic/github_esp_box_V0.5.0/esp-box/components/bsp/CMakeLists.txt:24
      (message):
    
        PLATFORM unknown.
    
      Call Stack (most recent call first):
    
        F:/HoloCubic/IDF/Enter_ESP-IDF_container_directory/esp-idf/tools/cmake/scripts/component_get_requirements.cmake:106 (include)
        F:/HoloCubic/IDF/Enter_ESP-IDF_container_directory/esp-idf/tools/cmake/scripts/component_get_requirements.cmake:124 (__component_get_requirements) 
    
    
    
    
    
    Call Stack (most recent call first):
      F:/HoloCubic/IDF/Enter_ESP-IDF_container_directory/esp-idf/tools/cmake/build.cmake:574 (__component_get_requirements)
      F:/HoloCubic/IDF/Enter_ESP-IDF_container_directory/esp-idf/tools/cmake/project.cmake:547 (idf_build_process)
      CMakeLists.txt:14 (project)
    
    
    -- Configuring incomplete, errors occurred!
    See also "F:/HoloCubic/github_esp_box_V0.5.0/esp-box/examples/factory_demo/build/CMakeFiles/CMakeOutput.log".
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    (2)测试环境:我为了写ESP32的组件添加教程,做测试实验,将组件路径中添加一个空的CMakeLists.txt,用以验证ESP32的组件添加是根据CMakeLists.txt来判断这个路径是否为有效组件。添加完CMakeLists.txt之后,删除CMakeLists.txt文件再次编译就会出现如上错误。

    解决办法

    (1)当时我查了很久,一直在想是什么问题导致的。直到看到了下面这一句,说我配置未完成,发生错误!

    Configuring incomplete, errors occurred!
    
    • 1

    (2)我就在想是什么配置,于是就打算查看一下是什么配置有问题就找到原工程的sdkconfig文件和现在报错工程的sdkconfig文件进行对比。发现现在的工程sdkconfig文件中会少一些配置信息。

    在这里插入图片描述

    (3)于是我就想到了将原来工程的sdkconfig文件覆盖现在出问题的工程sdkconfig文件,之后编译就没有问题了。
    (4)但是有些人肯定要说了,他没有保留原来工程的sdkconfig文件怎么办?你可以删除工程目录下的sdkconfig文件和dependencies.lock文件,重新编译就可行了。

    猜测问题所在

    (1)应该组件目录中有一个空的CMakeLists.txt文件,导致编译器生成sdkconfig文件配置的时候没有全部生成就终止编译了。
    (2)之后,你再次进行编译,编译器发现你项目工程中存在sdkconfig文件,就不会再次进行对sdkconfig文件的处理。但是此时的sdkconfig文件是错误的,后续的编译过程是要利用上sdkconfig文件的,因为此时的sdkconfig文件不完整,所以会导致后续的编译出现问题。

  • 相关阅读:
    简记C语言清空输入残留内容
    PerfView专题 (第五篇):如何寻找 C# 托管内存泄漏
    SpringBoot 10 登录功能和登录拦截器
    flume的安装配置笔记
    李沐:用随机梯度下降来优化人生!
    Python入门自学进阶-Web框架——21、DjangoAdmin项目应用
    国庆作业day5
    Unity打包导出apk报错Failed to load libmain.so‘
    基于Springboot的时装购物系统(有报告)。Javaee项目,springboot项目。
    <Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 1》(5)
  • 原文地址:https://blog.csdn.net/qq_63922192/article/details/132939473