我被要求在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
如果我复制目标文件,代码会编译,但这仍然让我感到烦恼。谢谢你的帮助!
答案 0 :(得分:0)
我似乎需要为输出添加规则。这解决了我的问题:
%.o: %.cpp
$(CPP) $(CCFLAGS) -c $< -o $@
$&lt; 替换输入, $ @ 替换输出。