环境:ubuntu10.10
程序目的:利用原始套接字PF_PACKET和SOCK_RAW,获取IP等数据socket(PF_PACKET,SOCK_RAW,htons(ETH_P_IP))
问题:在编译时出现 error: ‘htons’ was not declared in this scope的错误
查了下有人说 htons包含在netinet/in.h文件中,
1 加#include<netinet/in.h>后编译,出现
/usr/include/netinet/in.h:34: error: conflicting declaration ‘IPPROTO_IP’
/usr/include/linux/in.h:26: error: ‘IPPROTO_IP’ has a previous declaration as ‘<anonymous enum> IPPROTO_IP’
.....等许多类似的错误
错误原因好像是与之前的某个文件定义的重复定义发生了冲突
2 将原先有的<linux/in.h>屏蔽之后,编译通过