# 环境搭建 [English] ------------------------------------------------------------------------ ## 1.idf.py menuconfig 编译报 \"Configuring incomplete, errors occured\" 的错误信息如何解决呢? * 使用 `cmake --version` 查看 CMake 版本,如果低于 3.10.0,则认为是较低版本,建议更新 CMake 版本: * 下载 CMake:https://cmake.org/download/ * 操作参考链接:http://www.mamicode.com/info-detail-2594302.html 更新时间:2022.4.22
------------------------------------------------------------------------ ## 2. Windows 下使用 ESP-IDF Tools 2.3 工具安装 master 版本的 esp-idf 出现错误:Installation has failed with exit code 2,是什么原因? * 此报错跟网络环境有关,该网路环境下无法流畅的下载 Github 仓库,导致电脑 SDK 下载失败。如遇到 Github 访问问题,推荐使用最新 [离线版本安装工具](https://dl.espressif.com/dl/esp-idf/)。 更新时间:2022.4.22
------------------------------------------------------------------------ ## 3. Windows 下使用 [esp-idf-tools-setup-2.3.exe](link:https://dl.espressif.com/dl/esp-idf-tools-setup-2.3.exe) 搭建环境,make menuconfig 出现如下错误: ```bash -- Warning: Did not find file Compiler/-ASM Configure -- Configuring incomplete, erros occurred! ``` 出现此错误的原因是未找到编译工程,可以切换目录到 esp-idf/examples/get-started/hello\_world 示例中进行测试验证。 更新时间:2022.4.22
------------------------------------------------------------------------ ## 4. Windows 下使用 [esp-idf-tools-setup-2.2.exe](link:https://dl.espressif.com/dl/esp-idf-tools-setup-2.2.exe) 安装过程中,出现 python 工具异常: ```bash Installation has failed with exit code 1 ``` 1. 更新一下工具链:https://dl.espressif.com/dl/esp-idf-tools-setup-2.3.exe 2. 并且删除 idf\_tools.py 中过时的选项 \"\--no-site-packages\" 更新时间:2022.4.22
------------------------------------------------------------------------ ## 5. Windows 下安装编译环境出现 `Download failed: 安全频道支持出错` ? * 这是因为 Windows 系统已经默认不开启对 SSl3.0 的支持。 * 修改方法:在 *控制面版* 中找到`Internet 选项`,在其打开的窗口中选择 `高级`,最后在 `设置` 中勾选`使用 SSL 3.0`。 更新时间:2022.4.22
------------------------------------------------------------------------ ## 6. Windows 下执行 export.bat,提示 CMake、gdbgui 版本错误: ```bash C:\Users\xxxx\.espressif\tools\cmake\3.16.4\bin The following Python requirements are not satisfied: gdbgui=0.13.2.0 ``` * 这个问题是由于上游的 gdbgui 发生了更新,从而导致与低版本的 python 不兼容。目前的解决方法是:手动修改 esp-idf 根目录下的 `requirements.txt`,找到 gdbdui 那条,修改成:`gdbgui==0.13.2.0`。 更新时间:2022.4.22
------------------------------------------------------------------------ ## 7. 将版本从 v3.3 更新至最新版本后,使用 idf.menuconfig 及 idf.build 报错: * 按照 [快速入门](link:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/index.html) 重新搭建一下环境。 * 把 hello\_world 目录下的 build 和 sdkconfig 删除。 更新时间:2022.4.22
------------------------------------------------------------------------ ## 8. 如果同时要开发 ESP32 和 ESP8266,该怎样设置 `PATH` 和 `IDF_PATH` ? * 对于 `PATH` 是没有影响的,可以放在一起: export PATH=\"\$HOME/esp/xtensa-esp32-elf/bin:\$HOME/esp/xtensa-lx106-elf/bin:\$PATH\"。 * 对于 `IDF_PATH`,可以在工程的 Makefile 里强制指定:在基于 ESP32 的工程项目里使用:`IDF_PATH = $(HOME)/esp/esp-idf`;在基于 ESP8266 的工程项目里使用:`IDF_PATH = $(HOME)/esp/ESP8266_RTOS_SDK`。 更新时间:2022.4.22
------------------------------------------------------------------------ ## 9. 每一次切换项目时都需要重新调用 `idf.py set-target` 指令吗? 使用 `idf.py build` 编译项目时,target 的选择取决于: 1. 如果编译目录已经生成,系统将使用上一次编译时使用的 target。该参数存储于编译目录中的 CMakeCache.txt 文件内。 2. 如果还未生成编译目录,系统将检查 `sdkconfig` 文件,并使用其中定义的 target。 3. 如果同时存在有编译目录和 `sdkconfig` 文件,且其中分别定义了不同的 target,系统将报错。但该情况一般不会发生,除非在未删除编译目录的情况下手动更改了 `sdkconfig` 文件。 4. 如果 `sdkconfig` 文件或编译目录都不存在,可使用 `IDF_TARGET` 设置 target,作为 CMake 变量或环境变量。同样,如果该变量设置的 target 和 `sdkconfig` 文件或编译目录中定义的 target 不一致,系统也会报错。 5. 最后,如果上述三种途径都未定义 target,系统将使用默认值。可在 `sdkconfig.defaults` 中设置默认的 target 值。 6. 若未设定任何默认值,系统将使用 esp32 进行编译。 关于是否需要多次调用 `idf.py set-target` : * 一旦某个项目配置完成并使用 target 编译过一次后,则无需再次调用 `idf.py set-target`指令重设,直接切换到另一项目中即可。`idf.py set-target` 指令会将配置的 target 值存储于项目下的编译目录和 `sdkconfig` 文件中,并非存储于终端环境。因此,如果你切换并编译了另一项目,再次切回上一项目时,其 target 不会改变,仍为上一次为这个项目配置的值。 * 若想使项目自动编译某一默认的 target 值,请将默认值添加至项目的`sdkconfig.defaults` 文件(如 `CONFIG_IDF_TARGET="esp32s2"`)。此后,如果项目中未存在 `sdkconfig` 文件和编译目录,`idf.py build` 将使用 `sdkconfig.defaults` 中定义的默认值进行编译。 * `idf.py set-target` 指令定义的 target 值可覆盖 `sdkconfig.defaults` 中配置的值。 更新时间:2022.4.22
------------------------------------------------------------------------ ## 10. 如何查看当前 ESP-IDF 的版本号,是否存在记录版本号的文件? * 官方有个变量 `IDF_VER`,可以通过调用函数 `esp_get_idf_version`进行查看。 * 具体信息还可以查看 \"components/esp\_common/include/esp\_idf\_version.h\"。 更新时间:2022.4.22
------------------------------------------------------------------------ ## 11. Windows 环境下 ESP-IDF 编译比较慢如何优化? | Supported Targets | ESP32 | | ----------------- | ----- | * 请将 ESP-IDF 源码目录以及编译器目录 `.espressif` 添加到杀毒软件的排除项。 更新时间:2022.4.22