Zephyr项目中net_if_get_default未定义引用问题求助
Zephyr WiFi应用编译错误:
undefined reference to 'net_if_get_default' 解决方法 问题根源
net_if_get_default是Zephyr网络子系统的核心API,仅包含头文件无法让链接器找到该函数的实现——你必须通过Kconfig配置启用整个网络子系统及相关组件,仅在设备树overlay中开启WiFi硬件是不够的。
修复步骤
启用基础网络组件
在项目的prj.conf文件中添加以下配置项:CONFIG_NETWORKING=y CONFIG_NET_IF=y CONFIG_NET_IPV4=y # 按需启用,也可添加CONFIG_NET_IPV6=y支持IPv6开启WiFi网络管理组件
为了让WiFi与网络子系统联动,补充以下配置:CONFIG_WIFI=y CONFIG_WIFI_MGMT=y CONFIG_NET_WIFI=y修正代码语法错误
你的main.c中printk的字符串缺少终止符和换行符,应修改为:printk("Application start\n");
重新编译
完成上述修改后,重新执行编译命令:
west build -b esp32s2_saola .
此时链接器就能找到net_if_get_default的实现,编译应当通过。
内容的提问来源于stack exchange,提问作者u314
相关产品推荐
相关产品推荐

