0

次のシェル コマンドには、実行するアクションが付随しています。

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た。しかし、lex q5.lシェルから明示的に実行すると、フォルダーにはlex.yy.c. だから、lex q5.l私のプログラムでは実行されなかったと思っていmain.cppます。

誰でも問題と main.cpp を正しく実行する方法を指摘できますか。

4

1 に答える 1

2

q5.lプログラムでは、呼び出しを実行する前にストリーム書き込みをフラッシュまたは閉じませんsystem...出力ファイルに意図したコンテンツがあるとは期待できません....

于 2013-02-07T07:52:20.600 に答える