乐鑫技术交流
直播中

艾玛

11年用户 740经验值
擅长:模拟技术 EDA/IC设计 RF/无线
私信 关注
[问答]

成功安装esp-idf后,把esp-idfexampleswifigetting_startedstation拷贝出来,编译后失败了怎么解决?

成功安装esp-idf后,把 esp-idfexampleswifigetting_startedstation 拷贝出来
编译后失败。大概意思是说:链接时 lwip_* 函数都找不到。
跪求帮助。

===============================================================
FAILED: wifi_station.elf
cmd.exe /C "cd . && C:UsersNameless.espressiftoolsxtensa-esp32-elfesp-2020r2-8.2.0xtensa-esp32-elfbinxtensa-esp32-elf-g++.exe  -mlongcalls -Wno-frame-address   @CMakeFileswifi_station.elf.rsp  -o wifi_station.elf  && cd ."
c:/users/nameless/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/lwip/liblwip.a(vfs_lwip.c.obj):(.literal.lwip_ioctl_r_wrapper+0x0): undefined reference to `lwip_ioctl'
c:/users/nameless/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/lwip/liblwip.a(vfs_lwip.c.obj):(.literal.lwip_fcntl_r_wrapper+0x0): undefined reference to `lwip_fcntl'
c:/users/nameless/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/lwip/liblwip.a(vfs_lwip.c.obj):(.literal.esp_vfs_lwip_sockets_register+0x0): undefined reference to `lwip_write'
c:/users/nameless/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/lwip/liblwip.a(vfs_lwip.c.obj):(.literal.esp_vfs_lwip_sockets_register+0x4): undefined reference to `lwip_read'
c:/users/nameless/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/lwip/liblwip.a(vfs_lwip.c.obj):(.literal.esp_vfs_lwip_sockets_register+0x8): undefined reference to `lwip_close'
c:/users/nameless/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/lwip/liblwip.a(vfs_lwip.c.obj):(.literal.esp_vfs_lwip_sockets_register+0x14): undefined reference to `lwip_select'
c:/users/nameless/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/lwip/liblwip.a(vfs_lwip.c.obj): in function `lwip_ioctl_r_wrapper':
C:/Users/Nameless/Desktop/esp-idf/components/lwip/port/esp32/vfs_lwip.c:57: undefined reference to `lwip_ioctl'
c:/users/nameless/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/lwip/liblwip.a(vfs_lwip.c.obj): in function `lwip_fcntl_r_wrapper':
C:/Users/Nameless/Desktop/esp-idf/components/lwip/port/esp32/vfs_lwip.c:52: undefined reference to `lwip_fcntl'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
ninja failed with exit code 1
                                                                    

回帖(1)

陈存楼

2024-6-24 17:00:33
以下是一些建议来解决这个问题:

1. 确保您的 esp-idf 版本与您的项目兼容。您可以在 esp-idf 的 GitHub 页面上查看不同版本的示例项目,以确保您使用的是正确的版本。

2. 检查您的 CMakeLists.txt 文件,确保所有必要的组件和库都已正确添加。例如,您可能需要添加以下行来包含 lwip 组件:

   ```
   idf_component_register(INCLUDE_DIRS "."
                        PRIV_REQUIRES esp_wifi lwip)
   ```

3. 确保您的项目中的源文件包含了所需的 lwip 头文件。例如:

   ```c
   #include "lwip/err.h"
   #include "lwip/sys.h"
   ```

4. 如果您在编译过程中使用了自定义的编译器或链接器设置,请确保它们与 esp-idf 兼容。您可以尝试使用 esp-idf 提供的默认设置,以排除这个问题。

5. 清理并重新编译您的项目。有时候,编译过程中可能会产生一些错误,导致链接失败。您可以尝试运行以下命令来清理并重新编译项目:

   ```
   idf.py clean
   idf.py build
   ```


举报

更多回帖

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