我为 Cortex M 开发软件,为此我使用 Arm GNU 工具链。
我需要解析我有语法的数据包。
不过我对
flex
有问题,因为它通常需要我没有为皮质 M 编译的 libfl.a
库。
我怎样才能解决这个问题(除了只为 cortex M 重新编译
libfl.a
)?也许一些弹性参数?
此外,这引起了我的其他疑虑,因为我的系统是裸机:
qprintf()
.pvPortMalloc()
而不是标准的 malloc()
.所以我想知道,即使克服了
libfl.a
问题,flex和bison是否会出现上述约束的问题。
libfl.a 只定义了
main
和 yywrap
。因此,如果您不需要其中任何一个(因为您拥有自己的main
并且您可以使用%option noyywrap
或者您拥有自己的yywrap
),则不需要libfl.a
但是,由 flex 生成的扫描仪确实需要 C 库中的
malloc
/realloc
,因此如果您没有,则需要提供替代品。默认的 YY_INPUT
/ECHO
宏也使用 stdio,所以如果你想避免标准库的那部分,你需要重新定义(或不使用)它们。