我有一堆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:没有这样的文件或目录 编译终止。
但INC.h中的config.h文件非常多。我还提供了完整的路径。
有人可以指出我做过的任何错误。
由于
这是我的make文件
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