【发布时间】:2011-10-14 22:15:48
【问题描述】:
我有以下 gcc 不喜欢的 makefile:
blah.exe:lex.yy.o
gcc –o blah.exe lex.yy.o
lex.yy.o:lex.yy.c
gcc –c lex.yy.c
lex.yy.c:blah.lex
flex blah.lex
如果我删除了除原始 blah.lex 文件之外的所有内容,则在运行 make 时会出现此错误:
flex blah.lex
gcc ûc lex.yy.c
gcc: ûc: No such file or directory
make: *** [lex.yy.o] Error 1
现在,如果我按此顺序执行以下命令,则一切正常并可以编译。
flex blah.lex
gcc –c lex.yy.c
gcc –o blah.exe lex.yy.o
接下来,如果我运行 make,它会说:
make: `blah.exe' is up to date.
如果存在 *.o 和 *.exe 文件,这是正常响应。但是为什么在需要创建这些文件时不能“制作”工作。
注意:我已经在 makefile 中添加了 Tabs。 flex是一个根据blah.lex的内容生成lex.yy.c的工具
【问题讨论】:
-
这肯定是Makefile的字符编码有问题。尝试使用任何允许您显示实际字符的编辑器,例如 vi 或 notepad++。
-
我使用notepad++来创建makefile
标签: c gcc makefile flex-lexer