0

以下 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"); 

但是当我g++ main.cpp -o main在 shell 中执行时,会生成以下错误:

q5.l:1: premature EOF
g++: error: lex.yy.c: No such file or directory

当我检查文件夹时,没有lex.yy.c. 但是,如果我lex q5.l从 shell 显式运行,则该文件夹包含lex.yy.c. 所以,我认为这lex q5.l没有在我的程序中执行main.cpp

谁能指出问题和正确执行 main.cpp 的方法。

4

1 回答 1

2

在您的程序中,您不会q5.l在执行system调用之前刷新或关闭流写入......不能期望输出文件具有预期的内容......

于 2013-02-07T07:52:20.600 回答