たくさんの src ファイル (すべて 1 つのフォルダー内) と .h ファイルがさまざまなフォルダーに分散していました。メイクファイルを使用すると、.c ファイルを正常にビルドできました。
ここで、2 つの .c ファイルを導入しましたが、makefile とは別のフォルダーにあり、ビルドを成功させることができません。オンラインで調べたところ、これには vpath を使用する必要があることがわかりました。しかし、vpath を使用した後でも、新しいフォルダーに .c ファイルを作成する際にエラーが発生します。
1) 以下の make ファイルで、後で追加された新しい .c ファイルは fbpath.c と stream.c でした。2) これらの .c ファイルが参照するインクルード ファイルの相対パスも含めます。3) 次に、.c ファイルが存在する場所を指すように VPATH を追加しました。
私が得るエラーは
fbpath.c:30:24: 致命的なエラー: config.h: そのようなファイルまたはディレクトリのコンパイルは終了しませんでした。
しかし、config.h ファイルは INC に非常に多く存在します。フルパスも提供しました。
誰かが私がした間違いを教えてください。
ありがとう
ここに私のメイクファイルがあります
CC=arm-linux-gnueabihf-gcc
CFLAGS= -c -Wall -std=c99 -fmessage-length=0 -O0
INC = -I. -I../inc -I../APP/inc -I../../../common -I/home/user/workdir/Final/test -I/home/user/workdir/Final/inc -I../../inc
LDFLAGS=-lm
VPATH:=../APP/src
OBJ = main.o correct.o alignment.o fastmath.o cov_est.o subsample.o state.o cconv.o fbpath.o stream.o
myprogram: $(OBJ)
$(CC) $(LDFLAGS) -o myprogram $(OBJ)
correct.o : correct.c
$(CC) $(CFLAGS) $(INC) correct.c
alignment.o : alignment.c
$(CC) $(CFLAGS) $(INC) alignment.c
fastmath.o : fastmath.c
$(CC) $(CFLAGS) $(INC) fastmath.c
cov_est.o : cov_est.c
$(CC) $(CFLAGS) $(INC) cov_est.c
subsample.o : subsample.c
$(CC) $(CFLAGS) $(INC) subsample.c
state.o : state.c
$(CC) $(CFLAGS) $(INC) state.c
cconv.o : cconv.c
$(CC) $(CFLAGS) $(INC) cconv.c
fbpath.o :fbpath.c
$(CC) $(CFLAGS) $(INC) fbpath.c
stream.o : stream.c
$(CC) $(CFLAGS) $(INC) stream.c
main.o : main.c
$(CC) $(CFLAGS) $(INC) main.c
clean:
rm -rf *o myprogram