我有以下makefile:
CCC = g++
CCFLAGS = -ansi
driver: driver.o graph.o
$(CCC) -o driver driver.o graph.o
graph.o: graph.h
driver.o: graph.h
adjl:
rm -f graph.h graph.cc
ln -s adjl/graph.cc .
ln -s adjl/graph.h .
touch graph.cc graph.h
adjm:
rm -f graph.h graph.cc
ln -s adjm/graph.cc .
ln -s adjm/graph.h .
touch graph.cc graph.h
clean:
rm -f *.o
real_clean: clean
rm -f graph.cc graph.h
rm -f driver
我的想法是,我试图链接两个不同的.cc/.h文件,具体取决于我想要使用的实现.如果我make_clean,没有.cc/.h文件存在,我只有一个driver.cc文件和文件夹中的makefile.如果我打电话给make,它说它们是最新的.即使我在adjl/adjm中编辑文件以使它们成为"更新"版本,也会发生这种情况.
[95]% ls adjl/ adjm/ driver.cc makefile [96]% make adjl make: `adjl' is up to date. …