完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我决定尝试最新发布的ESP8266_RTOS_SDK。我安装了最新的工具链:
xtensa-lx106-elf-macos-1.22.0-100-ge567ec7-5.2.0.tar.gz 然后我克隆了 ESP8266_RTOS_SDK 的 release/v3.3 分支。这导致我的项目生成失败,并出现以下情况: 抄送构建/lwip/lwip/src/api/if_api.o 在 /Users/卡马林/esp/ESP8266_RTOS_SDK/components/lwip/lwip/src/api/if_api.c:49:0 包含的文件中: /Users/卡马林/esp/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/priv/sockets_priv.h:105:0: warning: "LWIP_SETGETSOCKOPT_MAXOPTLEN" redefined #define LWIP_SETGETSOCKOPT_MAXOPTLEN LWIP_MAX(16, sizeof(struct ifreq)) ^ 在 /Users/卡马林/esp/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/priv/sockets_priv.h:45:0 包含的文件中, from /Users/卡马林/esp/ESP8266_RTOS_SDK/components/lwip/lwip/src/api/if_api.c:49: /Users/卡马林/esp/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/sockets.h:115:0:注意:这是上一个定义的位置 #define LWIP_SETGETSOCKOPT_MAXOPTLEN 16 ^ 在 /Users/卡马林/esp/ESP8266_RTOS_SDK/components/lwip/lwip/src/api/if_api.c:49:0 包含的文件中: /Users/卡马林/esp/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/priv/sockets_priv.h:109:8:错误:重新定义“struct lwip_setgetsockopt_data” struct lwip_setgetsockopt_data { ^ 在 /Users/卡马林/esp/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/priv/sockets_priv.h:45:0 包含的文件中, from /Users/卡马林/esp/ESP8266_RTOS_SDK/components/lwip/lwip/src/api/if_api.c:49: /Users/卡马林/esp/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/sockets.h:119:8:注意:最初定义在这里 struct lwip_setgetsockopt_data { ^ cc1:警告:无法识别的命令行选项“-Wno-frame-address” make[1]: *** [/Users/卡马林/esp/ESP8266_RTOS_SDK/make/component_wrapper.mk:292: lwip/src/api/if_api.o] Error 1 make: *** [/Users/卡马林/esp/ESP8266_RTOS_SDK/make/project.mk:571: component-lwip-build] Error 2 因此,我回到了示例并尝试构建: ESP8266_RTOS_SDK/examples/get-started/hello_world 并得到同样的错误。似乎包含具有相同定义的两个不同标头存在一些冲突。有人见过这个吗?对于hello_world示例,我首先使用所有默认值运行“make menuconfig”。 |
|
相关推荐
1个回答
|
|
为了解决这个问题,请按照以下步骤操作:
1. 确认您的环境设置正确:确保您已经安装了正确的工具链(xtensa-lx106-elf-macos-1.22.0-100-ge567ec7-5.2.0.tar.gz)和 ESP8266_RTOS_SDK 的 release/v3.3 分支。 2. 清理构建:在构建项目之前,先尝试清理之前的构建文件。在项目的根目录下,执行以下命令: ``` make clean ``` 3. 检查 lwip 配置:检查 lwip 配置文件(通常位于 components/lwip/include/lwipopts.h),确保所有必要的配置项都已正确设置。 4. 更新 lwip 源代码:尝试从 lwip 官方仓库获取最新的 lwip 源代码,然后替换 ESP8266_RTOS_SDK 中的 lwip 目录。这可以通过以下命令完成: ``` git clone https://github.com/lwip-tcpip/lwip.git cp -r lwip/src/* /path/to/ESP8266_RTOS_SDK/components/lwip/lwip/src/ ``` 5. 重新构建项目:在项目的根目录下,执行以下命令重新构建项目: ``` make ``` 6. 如果问题仍然存在,请检查错误和警告信息,以便找到具体的问题所在。在您提供的错误信息中,有一个警告: ``` warning: "LWIP_SETGETSOCKOPT_MAXOPT" ``` 这可能是由于 LWIP 配置文件中的宏定义问题。检查 lwipopts.h 文件,确保 LWIP_SETGETSOCKOPT_MAXOPT 宏定义正确。 |
|
|
|
只有小组成员才能发言,加入小组>>
171个成员聚集在这个小组
加入小组420 浏览 1 评论
1274 浏览 1 评论
596浏览 6评论
490浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
478浏览 5评论
474浏览 4评论
460浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-8 04:36 , Processed in 0.920144 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号