【问题解决】ESP32报错:error: expected initializer before ‘

阅读: 评论:0

【问题解决】ESP32报错:error: expected initializer before ‘

【问题解决】ESP32报错:error: expected initializer before ‘

报错:

之前使用了高版本的 ESP-IDF ,现在要使用低版本的 ESP-IDF。切换版本后再编译就出错了。

执行 make 或者 make all

/home/pjw/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/xtensa-esp32-elf/sys-include/stdlib.h:155:44: error: expected initializer before '__result_use_check'void *reallocarray(void *, size_t, size_t) __result_use_check __alloc_size(2)^~~~~~~~~~~~~~~~~~
/home/pjw/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/xtensa-esp32-elf/sys-include/stdlib.h:340:52: error: expected initializer before '__alloc_align'void * aligned_alloc(size_t, size_t) __malloc_like __alloc_align(1)

执行 make -j16

/home/pjw/ESP32/esp-mdf/esp-idf/components/newlib/include/stdio.h:282:12: error: 'vfiprintf' was not declared in this scopeint _EXFUN(vfiprintf, (FILE *, const char *, __VALIST)^~~~~~~~~
/home/pjw/ESP32/esp-mdf/esp-idf/components/newlib/include/stdio.h:282:29: error: expected primary-expression before '*' tokenint _EXFUN(vfiprintf, (FILE *, const char *, __VALIST)....一堆错误

分析:

ESP idf expected initializer before '__result_use_check’错误修复
看编译信息的最开始部分如下:

App "get-started" version: 237cc099-dirty
WARNING: Toolchain version is not supported: esp-2020r3
Expected to see version: crosstool-ng-1.22.0-97-gc752ad5
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
WARNING: Compiler version is not supported: 8.2.0
Expected to see version(s): 5.2.0
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.

从信息来看就是编译工具链版本不对。
不支持 esp-2020r3 版本的工具链,要使用 crosstool-ng-1.22.0-97-gc752ad5 版本。
不支持 8.2.0 版本的编译器,要使用 5.2.0 版本。


解决:

esp-idf 里面执行了 .install.sh 以后,工具链和编译器已经下载到 ~/.espressif/tools/xtensa-esp32-elf 里面了。

所以只需要修改一下环境变量就行了。
原来使用的 export PATH=~/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin:$PATH
修改:

vim ~/.bashrc# 删除之前的编译链环境变量
#export PATH=~/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin:$PATH# 新增环境变量
export PATH=~/.espressif/tools/xtensa-esp32-elf/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/bin:$PATH
source ~/.bashrc

附:

ESP-IDF release/v3.3 使用的 1.22.0-97-gc752ad5-5.2.0 版本
ESP-IDF release/v4.0 使用的 esp-2019r2-8.2.0 版本
ESP-IDF release/v4.2 使用的 esp-2020r3-8.4.0 版本
ESP-IDF release/v4.3 使用的 esp-2021r1-8.4.0 版本

本文发布于:2024-01-28 00:05:32,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063715313453.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:报错   error   initializer   expected
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23