gpt4 book ai didi

c - Flex 和 bison 定义自己的 'main' 函数

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:02 28 4
gpt4 key购买 nike

Flex 和 bison 定义了它们自己的 main 函数,所以当我使用库 libflliby 编译我的代码时,ld 不想链接它,因为 main 被声明了多次。我该如何解决这个问题?

最佳答案

libflliby 都定义了一个 main 但如果您使用总是 将库放在最后 的不变规则在链接命令(或编译命令,如果您在一个步骤中链接和编译)那么它们不应该产生任何问题。 (换句话说,永远不要将 -lfl -ly 放在您正在链接的对象或源文件之前。)

请注意,如果您既不定义也不禁止 yywrap,那么您只需要 libfl。如果您使用的是 flex,并且不需要 yywrap 功能,请将 %option noyywrap 添加到您的 flex 输入文件中,而不要考虑 libfl

此外,您根本不需要liby。除了main,它还定义了yyerror。但是,您应该始终自己定义 yyerror,因此完全不需要该库。

libflliby 是“方便”的库,可以帮助编写快速而肮脏的测试或 hack。生产代码不应该依赖它们。他们添加的功能包括不到十几行不是很有用的代码。

关于c - Flex 和 bison 定义自己的 'main' 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40060562/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com