2011-12-30 2 views
0

만약 내가 틀렸다면 NDK로 안드로이드 용 libpcap을 컴파일하려고합니다. 마지막으로, 나는이 오류가 :에는 grammar.y에서libpcap 결과 컴파일하기`pcap_parse '에 대한 정의되지 않은 참조

우리는 볼 수 있습니다 YYBISON이

을 정의되지 않은 경우

#ifndef YYBISON 
int yyparse(void); 

int 
pcap_parse() 
{ 
    return (yyparse()); 
} 
#endif 

=> pcap_parse가 정의하지만 gencode.c에, 우리가 (라인 342)

lex_init(buf ? buf : ""); 
init_linktype(pcap_datalink(p)); 
(void)pcap_parse(); 

AND gencode.h (라인 299)

struct bpf_insn *icode_to_fcode(struct block *, int *); 
int pcap_parse(void); 
void lex_init(char *); 
void lex_cleanup(void); 

=> 테스트 케이스없이 사용한다면 pcap_parse !! YYBISON이 정의 된 경우 libpcap 결과가 잘못됩니다. (정의되지 않은 함수 pcap_parse)

어디서 오류가 있습니까?

+1

libpcap을 빌드하는 소스 디렉토리의'config.log' 파일의 내용은 무엇입니까? Bison을 가지고 있다면, Makefile은'grammar.c'를'bison -y -p pcap_'로 생성해야합니다. 그러면'grammar.c'가 직접'pcap_parse()'를 정의해야하므로'pcap_parse()' 래퍼가 필요하지 않습니다. 여하튼, 그것은 일어나지 않고있다. –

답변

0

이 솔루션은 정말 쉽습니다. 나는 단지 소스에서 make distclean을한다. 작동하지 않으면 git reset --hard으로 시도해야하며 수정해야합니다.

모두 감사합니다.