以下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时,会产生以下错误:

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的方法。

最佳答案

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

关于c++ - 在c++程序中连续运行两个shell命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14744569/

10-11 18:00