乐鑫技术交流
直播中

123

10年用户 820经验值
擅长:可编程逻辑
私信 关注
[问答]

https_server编译报错的原因?

版本:IDF4.3.5
报错输出如下:
[982/983] Linking CXX executable https_server.elf
FAILED: https_server.elf
cmd.exe /C "cd . && D:Espressiftoolsriscv32-esp-elfesp-2021r2-patch3-8.4.0riscv32-esp-elfbinriscv32-esp-elf-g++.exe  -march=rv32imc  -nostartfiles -march=rv32imc --specs=nosys.specs @CMakeFileshttps_server.elf.rsp  -o https_server.elf  && cd ."
d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: esp-idf/main/libmain.a(app_main.c.obj): in function `esp_create_https_server':
d:espressifframeworksesp-idf-v4.3.5workspacehttps_serverbuild/../main/app_main.c:216: undefined reference to `_binary_cacert_pem_start'
d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: d:espressifframeworksesp-idf-v4.3.5workspacehttps_serverbuild/../main/app_main.c:216: undefined reference to `_binary_cacert_pem_start'
d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: d:espressifframeworksesp-idf-v4.3.5workspacehttps_serverbuild/../main/app_main.c:217: undefined reference to `_binary_cacert_pem_end'
d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: d:espressifframeworksesp-idf-v4.3.5workspacehttps_serverbuild/../main/app_main.c:217: undefined reference to `_binary_cacert_pem_end'
d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: d:espressifframeworksesp-idf-v4.3.5workspacehttps_serverbuild/../main/app_main.c:221: undefined reference to `_binary_prvtkey_pem_start'
d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: d:espressifframeworksesp-idf-v4.3.5workspacehttps_serverbuild/../main/app_main.c:221: undefined reference to `_binary_prvtkey_pem_start'
d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: d:espressifframeworksesp-idf-v4.3.5workspacehttps_serverbuild/../main/app_main.c:222: undefined reference to `_binary_prvtkey_pem_end'
d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: d:espressifframeworksesp-idf-v4.3.5workspacehttps_serverbuild/../main/app_main.c:222: undefined reference to `_binary_prvtkey_pem_end'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
ninja failed with exit code 1


请问是什么原因?
                 

回帖(1)

lique

2024-6-26 17:22:06
根据您提供的错误信息,这个问题可能是由于以下几个原因导致的:

1. **路径问题**:错误信息中提到了路径 `D:Espressiftoolsriscv32-esp-elfesp-2021r2-patch3-8.4.0riscv32-esp-elfbinriscv32-esp-elf-g++.exe`,这个路径看起来可能有问题,因为它包含了一些特殊字符(如 `&`),这可能是由于复制粘贴时编码问题导致的。请检查您的工具链路径是否正确。

2. **工具链版本不兼容**:您使用的是ESP-IDF版本4.3.5,但是您的RISC-V工具链版本是2021r2-patch3。可能存在版本不兼容的问题。建议您检查ESP-IDF的文档,了解支持的工具链版本,并确保您使用的是兼容的版本。

3. **CMakeLists.txt配置问题**:错误信息中提到了 `@CMakeFileshttps_server.elf.rsp`,这表明可能是CMake配置文件有问题。请检查您的 `CMakeLists.txt` 文件,确保所有的依赖项和链接器标志都正确设置。

4. **编译器或链接器错误**:错误信息显示 "FAILED: https_server.elf",但没有提供具体的失败原因。这可能是由于编译器或链接器遇到了问题。您可以尝试清理项目(例如使用 `idf.py clean` 命令),然后重新编译。

5. **环境问题**:确保您的开发环境设置正确,包括路径变量、权限等。

解决步骤:
- 首先,检查并确保您的工具链路径正确无误。
- 确认您的工具链版本与ESP-IDF版本兼容。
- 检查 `CMakeLists.txt` 文件,确保所有配置正确。
- 清理项目并重新编译。
- 检查您的开发环境设置。

如果问题仍然存在,您可能需要提供更多的信息,例如 `CMakeLists.txt` 文件的内容,以便进一步分析问题。
举报

更多回帖

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