以下shell命令伴随着它们执行的操作:
lex q5.l ->produces lex.yy.c
g++ lex.yy.c -o q5 ->compiles lex.yy.c and produces a relocatable object file
现在我想在c ++程序(main.cpp)中执行此操作。所以,我在main.cpp中执行以下操作:
system("lex q5.l");
system("gcc lex.yy.c -o q5");
但是当我在shell中执行g++ main.cpp -o main
时,会产生以下错误:
q5.l:1: premature EOF
g++: error: lex.yy.c: No such file or directory
当我检查文件夹时,没有lex.yy.c
。但是,如果我从shell显式运行lex q5.l
,则该文件夹包含lex.yy.c
。所以,我认为lex q5.l
没有在我的程序main.cpp
中执行。
任何人都可以指出问题以及正确执行main.cpp的方法。
答案 0 :(得分:2)
在您的程序中,在执行q5.l
调用之前,您不会刷新或关闭编写system
的流...输出文件不能具有预期的内容....