使用makefile从lex文件生成a.out

时间:2012-10-31 18:52:43

标签: c makefile lex flex-lexer

我有auto.lex,我想生成此文件的a.out

我试过了 -

a.out: lex.yy.c
    gcc -c lex.yy.c

lex.yy.c: auto.lex
    flex -c auto.lex

但它不起作用。

修改

更改为 -

a.out: lex.yy.c 
    gcc lex.yy.c 
lex.yy.c: auto.lex 
    flex auto.lex

并修复。

1 个答案:

答案 0 :(得分:1)

lex文件的推荐后缀为.l。 GNU make有一个内置规则.l.c,可以从lex源创建C代码。因此,如果要从auto创建可执行文件auto.l,则根本不需要makefile。只需输入make auto

即可
$ make auto
lex  -t auto.l > auto.c
cc    -c -o auto.o auto.c
cc   auto.o  -lfl -o auto
rm auto.o auto.c