我有一堆 src 文件(都在一个文件夹中)和 .h 文件分布在不同的文件夹中。使用makefile,我能够成功构建.c 文件。
现在,我介绍了 2 个 .c 文件,但在与 makefile 不同的文件夹中,无法成功构建。我上网并知道我需要为此使用vpath。但即使在使用 vpath 之后,我在新文件夹中构建 .c 文件时也会出错。
1)在下面的make文件中,后面新增的.c文件是fbpath.c和stream.c。2)我还包括这些 .c 文件引用的包含文件的相对路径。3)然后我添加了 VPATH,指向 .c 文件所在的位置。
我得到的错误是
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