编译以太网驱动时遇sys/socket.h缺失致命错误,求解决方法
自定义内核6.6.27下编译r8126驱动报错:sys/socket.h找不到
在Ubuntu 20.04系统上通过内核源码编译了自定义内核6.6.27,编译厂商提供的r8126驱动(版本10.015.00)时出现如下编译错误:
Check old driver and unload it. Build the module and install In file included from ./include/linux/netfilter.h:8, from ./include/linux/netfilter/nf_conntrack_tuple_common.h:6, from ./include/linux/netfilter/nf_conntrack_dccp.h:28, from ./include/net/netns/conntrack.h:11, from ./include/net/net_namespace.h:27, from ./include/linux/netdevice.h:38, from /home/nvme/Desktop/r8126-10.015.00/src/r8126_n.c:42: ./include/linux/if.h:28:10: fatal error: sys/socket.h: No such file or directory 28 | #include <sys/socket.h> | ^~~~~~~~~~~~~~ /* for struct sockaddr. */ compilation terminated. make[4]: *** [scripts/Makefile.build:243: /home/nvme/Desktop/r8126-10.015.00/src/r8126_n.o] Error 1 make[3]: *** [/usr/src/linux-headers-6.6.27-202412311424+/Makefile:1913: /home/nvme/Desktop/r8126-10.015.00/src] Error 2 make[2]: *** [Makefile:234: __sub-make] Error 2 make[1]: *** [Makefile:193: modules] Error 2 make: *** [Makefile:41: modules] Error 2
注:已修正报错信息中明显的输入笔误(如nf contrack改为nf_conntrack、18126_n.o改为r8126_n.o等),保留原始路径中的拼写错误。
在文件系统中搜索到多个socket.h文件:
/usr/include/libnl3/netlink/socket.h /usr/include/x86_64-linux-gnu/asm/socket.h /usr/include/x86_64-linux-gnu/sys/socket.h /usr/include/x86_64-linux-gnu/bits/socket.h /usr/include/linux/socket.h /usr/include/asm-generic/socket.h /usr/src/linux-headers-6.6.27-202412311424+/arch/x86/include/generated/uapi/asm/socket.h /usr/src/linux-headers-6.6.27-202412311424+/include/asm/socket.h /usr/src/linux-headers-6.6.27-202412311424+/include/linux/socket.h /usr/src/linux-headers-6.6.27-202412311424+/include/uapi/linux/socket.h /usr/src/linux-headers-6.6.27-202412311424+/include/uapi/asm-generic/socket.h /usr/src/linux-headers-6.6.27-202412311424+/include/asm-generic/socket.h
已检查系统安装的libc版本,现寻求解决该编译错误的方法。
内容的提问来源于stack exchange,提问作者codexplorer
相关产品推荐
相关产品推荐

