2011-12-30 89 views
0

對不起,如果我錯了,但我想用NDK爲Android編譯libpcap。最後,我得到這個錯誤:編譯libpcap結果對`pcap_parse'的未定義引用

在grammar.y我們可以看到:如果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(); 

並在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應該用'bison -y -p pcap_'生成'grammar.c',這應該會導致'grammar.c'直接定義'pcap_parse()',這樣pcap_parse()包裝是沒有必要的。不知何故,這沒有發生。 – 2012-01-01 02:38:06

回答

0

解決方案非常簡單。我只是在來源處做一個make distclean。如果它不起作用嘗試git reset --hard,它應該是固定的。

謝謝大家

相關問題