子目录中的makefile对象

时间:2015-11-14 15:02:48

标签: makefile

我被要求在gcc上编译我的VC ++代码,并且给了一个makefile,应该在我的make文件目录的子目录中编译我的代码。问题是在子目录中查找目标文件,但输出到makefile目录。我想我需要在" -o"中添加一些东西,但我不在这里。

include ../makefile.common

CCFLAGS += -I. -I../general -L../general

HEADERS := $(wildcard *.h) $(wildcard */*.h)

SRCS := $(wildcard *.cpp) $(wildcard */*.cpp)

OBJS=$(SRCS:.cpp=.o)

DEPS=$(SRCS:.cpp=.d)

EXE=k2csv

default: $(EXE)

all: $(EXE)

$(EXE): $(OBJS) ../general/lib2csgeneral.a
    # ( cd ../general ; make ; )
    $(CPP) $(CCFLAGS) -o $(EXE) $(OBJS) -l2csgeneral -lmh -lm -pthread $(LDEFS)

clean:
    rm -f $(OBJS) $(DEPS) $(EXE)

ifneq "$(MAKECMDGOALS)" "clean"
sinclude $(DEPS)
endif

如果我复制目标文件,代码会编译,但这仍然让我感到烦恼。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我似乎需要为输出添加规则。这解决了我的问题:

%.o: %.cpp
$(CPP) $(CCFLAGS) -c $< -o $@

$&lt; 替换输入, $ @ 替换输出。