【发布时间】:2017-01-04 02:55:54
【问题描述】:
我有这个makefile
appname := fun
srcfiles := $(shell find .. -name "*.cpp")
headerfiles := $(shell find .. -name "*.hpp")
objects := $(patsubst %.cpp, %.o, $(srcfiles))
all: $(srcfiles) $(appname)
$(appname): $(objects)
$(CXX) $(LDFLAGS) -o $(appname) $(objects) $(LDLIBS)
depend: .depend
.depend: $(srcfiles) $(headerfiles)
rm -f ./.depend
$(CXX) $(CXXFLAGS) -MM $^>>./.depend;
clean:
rm -f $(appname) $(objects)
dist-clean: clean
rm -f *~ .depend
include .depend
makefile 的父目录包含所有代码(.hpp 和 .cpp 文件)。不幸的是,.o 文件保存在源代码中,而我希望它们保存在可执行文件的同一目录中(和makefile)。这与 Eclipse CDT 中的 Default 相同。
如何修改makefile 才能做到这一点?
PS:我发现了类似的问题,比如this 之一,但没有一个使用depend 来定义$(objects) 任务(它们都是`%.o% 形式)。
【问题讨论】: