この質問はおそらく私の問題を説明するのに最適な質問ではありませんが、これ以上の質問は考えられませんでした。私のmakefileは次のようになります:
PROGRAM_NAME = prog
OBJECT_FILES = $(PROGRAM_NAME).o
CFLAGS = -O2 -Wall -g
$(PROGRAM_NAME) : $(OBJECT_FILES)
gcc $(CFLAGS) -o $@ $(OBJECT_FILES)
$(PROGRAM_NAME).o : $(PROGRAM_NAME).c data.h
gcc $(CFLAGS) -c $<
clean :
$(RM) $(PROGRAM_NAME)
$(RM) $(OBJECT_FILES)
$(RM) *~ *.bak
run :
@$(MAKE) && ./$(PROGRAM_NAME) $(ARGS)
コンパイルして実行したいときは、「makerun」を実行します。これに関する問題は、私のプログラムがCtrl + Zによって生成された信号を処理し、「make run」でプログラムを開始すると、信号はプログラム自体ではなく「makerun」に送信されることです。
基本的に、「make run」を呼び出すことは、「make && ./prog」を直接呼び出すことと同じではありません。最初のケースでは、「prog」が最初に終了しない限り、「makerun」は終了しません。
これを回避する方法はありますか?