SocialButterfly 发表于 2025-6-23 09:18

STM32CubeIDE找不到符号或变量

用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

如果工具链路径未正确添加到系统环境变量中,可能导致编译器无法找到必要的文件。
页: [1]
查看完整版本: STM32CubeIDE找不到符号或变量