【发布时间】:2021-02-25 10:25:28
【问题描述】:
我的目录结构是:objFile/(cacheOp.o,fileOp.o),Header/(cacheOp.h,fileOp.h),Bodyer/(cacheOp.cpp,fileOp.cpp)
我写了一个Makefile文件:
cc=g++
CXXFLAGS=-g -o0
libObjs = objFile/cacheOp.o objFile/fileOp.o
all : cacheOpObj testFunc.cpp fileOpObj
$(cc) testFunc.cpp objFile/cacheOp.o -o test $(CXXFLAGS)
cacheOpObj : Header/cacheOp.h Bodyer/cacheOp.cpp
$(cc) -c Bodyer/cacheOp.cpp -o objFile/cacheOp.o $(CXXFLAGS)
fileOpObj : Header/fileOp.h Bodyer/fileOp.cpp
$(cc) -c Bodyer/fileOp.cpp -o objFile/fileOp.o $(CXXFLAGS)
但结果并不如预期。
- 当我执行
make命令时,即使我不做任何更改,它也会执行g++ -c Bodyer/cacheOp.cpp -o objFile/cacheOp.og++ -c Bodyer/fileOp.cpp -o objFile/fileOp.og++ testFunc.cpp objFile/cacheOp.o -o test。如果文件没有改变,它不应该显示它是最新的吗?我在标签中命名了依赖项。
【问题讨论】:
-
你试过删除
.PHONY: test吗? -
去掉.PHONY:test后,还是会重新编译