문제

프로그램을 실행했습니다 (링크는 - http://www.security-freak.net/raw-sockets/sniffer_eth_ip_tcp.c ) Fedora Core 5에서 5. 편집시 다음 오류가 발생합니다.

[root@localhost ~]# gcc sniffer_eth_ip_tcp.c
    In file included from sniffer_eth_ip_tcp.c:12: /usr/include/linux/ip.h:97: error: expected specifier-qualifier-list before ‘uint8_t’
    In file included from /usr/include/linux/tcp.h:21,
                 from sniffer_eth_ip_tcp.c:13:
    /usr/include/asm/byteorder.h:6:2: warning: #warning using private kernel header; include   <endian.h> instead!
    sniffer_eth_ip_tcp.c: In function ‘ParseIpHeader’:
    sniffer_eth_ip_tcp.c:147: error: ‘struct iphdr’ has no member named ‘daddr’
    sniffer_eth_ip_tcp.c:148: error: ‘struct iphdr’ has no member named ‘saddr’
    sniffer_eth_ip_tcp.c: In function ‘ParseTcpHeader’:
    sniffer_eth_ip_tcp.c:185: error: ‘struct iphdr’ has no member named ‘protocol’
    sniffer_eth_ip_tcp.c:187: error: ‘struct iphdr’ has no member named ‘ihl’

그러나 해당 헤더 파일의 구조 IPHDR에는 위에서 언급 한 데이터 구성원이 포함되어 있습니다. 누구든지 도와주세요 ..

도움이 되었습니까?

해결책

해당 오류를 얻는 유일한 방법은 귀하의 프로그램에 IPHDR이 참조하는 경우 해당 데이터 구성원이 포함되어 있지 않은 경우입니다. 따라서 모든 포함 된 포함을 검색하고 DUP 등을 확인하십시오 (또한 사전 컴파일을 통해 소스를 실행하고 포함 된 모든 것을 찾을 수 있습니다. 일반적으로 답변을 제공합니다).

편집하다
소스에서 CPP를 실행하여 어떤 헤더 파일이 포함되어 있는지 확인하십시오 (주문). 올바른 정보 전에 잘못된 정보가 포함 된 헤더가 있으면 문제가 발생합니다. 본질적으로 프로그램을 컴파일하는 데 필요한 헤더 파일 만 포함하십시오.
/편집하다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top