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的地方给去掉看看。
https://blog.sciencenet.cn/blog-351751-384825.html
上一篇:
linux errors下一篇:
解决Linux下的Codeblocks编辑器无法输入中文的问题