Android 编译libpcap结果未定义对`pcap_parse';的引用;
如果我错了,很抱歉,我正在尝试用NDK为Android编译libpcap。最后,我得到了这个错误: 在语法方面,我们可以看到:Android 编译libpcap结果未定义对`pcap_parse';的引用;,android,android-ndk,cross-compiling,libpcap,Android,Android Ndk,Cross Compiling,Libpcap,如果我错了,很抱歉,我正在尝试用NDK为Android编译libpcap。最后,我得到了这个错误: 在语法方面,我们可以看到: #ifndef YYBISON int yyparse(void); int pcap_parse() { return (yyparse()); } #endif =>如果未定义YYBISON,则定义pcap_解析 但在gencode.c中,我们有(第342行) 和gencode.h(第299行) =>如果在没有任何测试用例的情况下使用pcap_parse!
#ifndef YYBISON
int yyparse(void);
int
pcap_parse()
{
return (yyparse());
}
#endif
=>如果未定义YYBISON,则定义pcap_解析
但在gencode.c中,我们有(第342行)
和gencode.h(第299行)
=>如果在没有任何测试用例的情况下使用pcap_parse!!
如果定义了YYBISON,则结果是libpcap错误
(未定义函数pcap_parse)
我的错误在哪里?解决方法非常简单。我只是在源代码处做了一个
makedistclean
。如果它不起作用,尝试一个git重置--hard
,它应该被修复
谢谢大家在构建libpcap的源目录中,
config.log
文件的内容是什么?如果您有Bison,则Makefile应该使用Bison-y-ppcap\uu
生成grammar.c
,这将导致grammar.c
直接定义pcap\u parse()
,因此不需要pcap\u parse()
包装器。不知怎的,这并没有发生。
lex_init(buf ? buf : "");
init_linktype(pcap_datalink(p));
(void)pcap_parse();
struct bpf_insn *icode_to_fcode(struct block *, int *);
int pcap_parse(void);
void lex_init(char *);
void lex_cleanup(void);