[STM32F7] STM32CubeIDE找不到符号或变量

[复制链接]
633|18
 楼主| SocialButterfly 发表于 2025-6-23 09:18 | 显示全部楼层 |阅读模式
用STM32 CubeIDE时遇到以下问题。
用NUCLEO-STM32 F767 ZI工具包和STM32 CubeMX生成CubeIDE项目。
项目中lwip,mbedtls和GCP。从X-CUBE-GCP迁移GCP:https://www.st.com/en/embedded-software/x-cube-gcp.html
当只运行lwip和mbedtl时,可以编译代码,可以运行。当我添加GCP时,项目无法编译,提示lwip无法找到一些类型,如nfds_t,socklen_t.
有高手知道是怎么回事吗?

公羊子丹 发表于 2025-6-24 07:23 | 显示全部楼层
我也遇到过,socklen_t这种是定义在sys/socket.h里的,你检查下是不是include顺序有问题。
周半梅 发表于 2025-6-24 07:24 | 显示全部楼层
nfds_t这个类型一般在poll.h里定义的,估计是你GCP部分用了不兼容的socket接口。
帛灿灿 发表于 2025-6-24 07:25 | 显示全部楼层
有没有试过手动加上#include <sys/types.h>和#include <sys/socket.h>?有时候头文件不会自动加进来。
童雨竹 发表于 2025-6-24 07:25 | 显示全部楼层
你加GCP的时候是不是同时把旧的lwIP配置改动了?看看是否启用了RAW API。
万图 发表于 2025-6-24 07:26 | 显示全部楼层
GCP库用的是标准BSD socket接口,而STM32上的lwIP默认不是BSD兼容,要打开LWIP_SOCKET选项。
Wordsworth 发表于 2025-6-24 07:27 | 显示全部楼层
你是直接复制X-CUBE-GCP源码过来的,还是用CubeMX导入的?路径配置有没有丢?
Bblythe 发表于 2025-6-24 07:28 | 显示全部楼层
我当初解决类似问题是通过修改lwipopts.h,添加#define LWIP_SOCKET 1和#define LWIP_NETCONN 1。
Pulitzer 发表于 2025-6-24 07:29 | 显示全部楼层
编译器找不到类型,多半是头文件没加或预编译宏配置不对,仔细检查下C/C++ Paths和Symbols。
Uriah 发表于 2025-6-24 07:29 | 显示全部楼层
建议你用GCP的demo项目做比对,看下你自己项目哪些地方少了东西。
Clyde011 发表于 2025-6-24 07:30 | 显示全部楼层
F7上跑GCP有点吃资源,你有没有开启freertos并用netconn方式接入?可能和你现在结构不兼容。
elephant00 发表于 2025-6-24 10:41 | 显示全部楼层
检查文件是否正确添加到项目中
jcky001 发表于 2025-6-24 11:42 | 显示全部楼层
库文件是否正确链接
jcky001 发表于 2025-6-24 15:42 | 显示全部楼层
用的GNU版本与项目配置是否兼容。
jcky001 发表于 2025-6-24 16:43 | 显示全部楼层
链接器脚本是否匹配,路径是否正确。
cr315 发表于 2025-6-24 16:44 | 显示全部楼层
清理并重建项目。
flycamelaaa 发表于 2025-6-24 19:45 | 显示全部楼层
检查头文件包含路径是否包含。
powerantone 发表于 2025-6-24 19:45 | 显示全部楼层
重新生成项目。
stormwind123 发表于 2025-6-24 20:46 | 显示全部楼层
如果工具链路径未正确添加到系统环境变量中,可能导致编译器无法找到必要的文件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

57

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部