麻烦在makefile中使用vpath

时间:2013-09-27 21:31:41

标签: c makefile vpath

我有一堆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

0 个答案:

没有答案