我正在尝试构建一个使用 flex 的项目,并且在链接时,未定义以下flex符号:yy_create_buffer
和yy_switch_to_buffer
。这些显然是flex manual中记录的flex函数。
您知道这些功能的定义在哪里吗?我怀疑他们来自一个flex库应该传递给链接器......但是,我已经搜索了我的发行版(redhat)的最新flex,flex-devel包,并且似乎没有任何这样的库。
答案 0 :(得分:1)
符号位于flex
的输出中,而不是库中。它们在骨架中定义(flex
扩展为m4
)。如果您遇到与这些符号的链接问题,则问题可能是由于引用代码的错误定义:
yyFlexLexer::yy_create_buffer
yy
的命令行选项更改前导flex
以更改前缀。编译某些文件时,您的构建脚本可能会忽略提供此选项。