如何使用 flex 选项 -o (--output=FILE)

How to use flex option -o (--output=FILE)

我在尝试 flex abcd.l 时遇到了问题。我想将输出重定向到一个新文件而不是默认文件 lex.yy.c 我在手册中查找了一个选项 -o(--output=FILE) 所以我将命令更改为 flex xx.l -o lex.yy.1.c 但出现错误。

flex: can't open --outfile=lex.yy.1.c
/usr/bin/m4:stdin:2621: ERROR: end of file in string

我的工作环境是cygwinwindows 7

您需要将命令行选项 放在 位置参数之前:

flex -o lex.yy.1.c xx.l

一旦识别出位置(文件名)参数,flex 就会假定所有后续参数也是文件名。这是命令行实用程序参数处理的正常形式,尽管有些(例如 gcc)允许选项跟在文件名之后。

(个人建议使用xx.lex.c这样的文件名,但原理是一样的。)