私は現在、flexとbisonを使用した単純なコンパイラに取り組んでいます。フォルダ構造:MainFolder-> src->次のファイルを含むコンパイラadd_inp.flex、bison.y main.c、stack.c基本的に、個別に実行すると、正常にコンパイルされ、次のファイルが生成されます。flexproduce lex.yy .cとbisonはadd_inp.tab.cとadd_inp.tab.hを生成します以下は私のGNUmakeファイルです
lex.yy.c: src/dplc/add_inp.flex bison.tab.c src/dplc/bison.tab.h
flex src/dplc/add_inp.flex
bison.tab.c: src/dplc/bison.y
bison -d -t src/dplc/bison.y
a.exe: src/dplc/main.c lex.yy.c bison.tab.c
gcc src/dplc/main.c
clean:
rm src/dplc/bison.tab.c src/dplc/bison.tab.h src/dplc/lex.yy.c src/dplc/a.exe
このエラーが発生します
make: *** No rule to make target `src/dplc/bison.y', needed by `bison.tab.c'. Stop.
フレックスプログラムとバイソンプログラムを個別にコンパイルしていない場合:
make: *** No rule to make target `src/dplc/bison.y', needed by `bison.tab.c'. Stop.
これに関する助けに感謝します。また、これらのプログラムをJavaで記述されたExecutorと一緒に実行するには、Buildも実行する必要があります。誰かがそれを実行する方法について提案をお願いします。