乐鑫技术交流
直播中

tr4578

8年用户 916经验值
擅长:模拟技术
私信 关注
[问答]

ESP HomeKit SDK示例工程首次编译失败的原因?

尝试跑通ESP HomeKit SDK提供的 Fan 示例工程,但在首次编译时出现错误,执行“idf.py set-target”或“idf.py menuconfig”等命令时报错,截取log中报错部分如下:
CMake Error:  Running   'C:/Softwares/Espressif/tools/ninja/1.10.2/ninja.exe' '-C' 'D:/Workspace/eps_homekit/esp-homekit-sdk/examples/fan/build' '-t' 'recompact'  failed with:   ninja: error: build.ninja:21592: lexing error    DEFINES = -D MFI_VER=""4.0-??? Linux ? Windows ?????????????                                                                 ^ near hereCMake Generate step failed.  Build files cannot be regenerated correctly.cmake failed with exit code 1
似乎是因为自动生成的 “build/build.ninja” 文件中出现了非法字符, “build/build.ninja” 文件的第21586-21592行内容为:Code: Select all
############################################## Order-only phony target for __idf_esp_hap_corebuild cmake_object_order_depends_target___idf_esp_hap_core: phony || cmake_object_order_depends_target___idf_esp_hap_apple_profilesbuild esp-idf/esp_hap_core/CMakeFiles/__idf_esp_hap_core.dir/src/byte_convert.c.obj: C_COMPILER____idf_esp_hap_core_ D$:/Workspace/eps_homekit/esp-homekit-sdk/components/homekit/esp_hap_core/src/byte_convert.c || cmake_object_order_depends_target___idf_esp_hap_core  DEFINES = -D MFI_VER=""4.0-??? Linux ? Windows ?????????????
其中触发错误的21592行内容为:
DEFINES = -D MFI_VER=""4.0-??? Linux ? Windows ?????????????
可见在“build/build.ninja” 的 21592 行出现了很多问号,可能是在自动生成时存在编码格式问题,“build/build.ninja” 文件中共有22处相同内容的行,请教如何修复这个问题


回帖(1)

张健

2024-6-12 16:36:41
根据您提供的错误信息,问题出在 Ninja 构建系统在解析 build.ninja 文件时遇到了一个语法错误。错误信息中的 "lexi" 可能是一个拼写错误,实际上应该是 "lex" 错误。这通常意味着 Ninja 在解析 build.ninja 文件时遇到了一个它无法理解的语法。

要解决这个问题,您可以尝试以下步骤:

1. 检查 build.ninja 文件:打开位于 `D:/Workspace/eps_homekit/esp-homekit-sdk/examples/fan/build` 目录下的 build.ninja 文件,检查第 21592 行(或附近的行)是否有语法错误。这可能是一个拼写错误、缺少的括号或其他问题。

2. 清理构建:在项目目录下运行 `idf.py fullclean` 命令,这将删除所有构建文件并从头开始重新构建项目。

3. 更新 Ninja 和 ESP-IDF:确保您使用的 Ninja 和 ESP-IDF 版本是最新的,或者至少是与 ESP HomeKit SDK 兼容的版本。您可以访问它们的官方网站或 GitHub 仓库来获取最新版本。

4. 重新构建项目:在项目目录下运行 `idf.py build` 命令,尝试重新构建项目。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分