编译unix网络编程源代码时遇到的问题

    技术2022-05-20  31

    hylcf@hylcf-Aspire-4736Z:~/unpv13e/libfree$ cd ../libroute/ hylcf@hylcf-Aspire-4736Z:~/unpv13e/libroute$ make gcc -I../lib -g -O2 -D_REENTRANT -Wall   -c -o get_rtaddrs.o get_rtaddrs.c In file included from get_rtaddrs.c:1: unproute.h:3: fatal error: net/if_dl.h: 没有那个文件或目录 compilation terminated. make: *** [get_rtaddrs.o] 错误 1 原因: struct sockaddr一般有两种定义: struct sockaddr {   ushort_t sa_family;      char sa_data[14];    }; 或者 struct sockaddr {   uchar_t sa_len;      sa_family_t sa_family;      char sa_data[14];    }; 后一种是兼容BSD4.3的,估计该书作者使用的系统是支持这个的。 没用过ubuntu,不知道是否可以在编译核心的时候加什么参数让它兼容BSD4.3。 我觉得你还是改程序,把用到sa_len的地方给去掉看看。 ------------------------------------------------------------------------------------------------------------------------ 转自 李楚斐 李楚斐的个人博客

    最新回复(0)