编译 libpcap 结果 对“pcap_parse”的未定义引用

发布于 2024-12-23 15:30:57 字数 686 浏览 0 评论 0原文

抱歉,如果我错了,但我正在尝试使用 NDK 编译适用于 Android 的 libpcap。最后,我得到这个错误:

在 Grammar.y 中我们可以看到:

#ifndef YYBISON
int yyparse(void);

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

=>如果未定义 YYBISON,则定义 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)

我的错误在哪里?

Sorry if I am wrong but I am trying to compile the libpcap for Android with NDK. Finally, I get this error:

in grammar.y we can see :

#ifndef YYBISON
int yyparse(void);

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

=> pcap_parse is defined if YYBISON is not defined

BUT in gencode.c, we have (line 342)

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

AND in gencode.h (line 299)

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

=> pcap_parse if used without any test case !!
Result is a libpcap wrong if YYBISON is defined
(undedefined function pcap_parse)

Where is my error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤檠 2024-12-30 15:30:57

解决方案非常简单。我只是在源代码处执行了 make distclean 操作。如果它不起作用,请尝试 git reset --hard ,它应该可以修复。

谢谢大家

the solution was really easy. I just do a make distclean at the sources. If it doesn't work try to a git reset --hard and it should be fixed.

Thanks everyone

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文