【发布时间】:2012-03-19 12:25:44
【问题描述】:
我想调用 flex 来构建一个 .l 文件,然后调用 gcc 来构建一切。
我试过了:
comp:
lex scanner.l \
gcc -o a.out main.c hash.c -I.
错误:
lex scanner.l \
gcc -o a.out main.c hash.c -I.
lex: impossible to opne gcc
/usr/bin/m4:stdin:2994: ERROR: end of file in string
和
lex scanner.l
<tab> gcc -o a.out main.c hash.c -I.
错误:缺少分隔符。
lex 生成的 lex.yy.c 已包含在主文件中。
提前致谢,
佩德罗
【问题讨论】:
-
在第二个示例中,both 命令之前需要制表符。
-
@Pedro Dusso - 为了方便起见,您是否将 lex.yy.c 包含到 main.c 中,即避免编写外部声明或其他原因。 lex.yy.c 文件不必包含在 main.c 中
-
@gbulmer:是的,我注意到了。但是,我在scanner.lc 部分定义了一个initMe() 函数。我的 main.c 将被一个通用的自动化测试所取代。如何在scanner.l 中包含main.c?只需添加正确的包含并重新制作?
-
@gbulmer:是的,我只需要重新排序编译顺序并修复包含。非常感谢您的帮助!