【发布时间】:2021-04-16 13:07:06
【问题描述】:
我编写了以下 Makefile。但是当我执行make 命令时,总是会执行语句gcc -shared -o ../lib/libCfunc.so objFile/cacheOp.o objFile/fileOp.o objFile/linuxOp.o objFile/commonFunc.o。即使我没有修改任何文件,并且连续执行了多个make命令。
objFile 不依赖于$(libObjs)?为什么一直执行的只有这句话?
cc=gcc
CFLAGS=-g -O0 -fPIC -lm
libObjs=objFile/cacheOp.o objFile/fileOp.o objFile/linuxOp.o objFile/commonFunc.o
all: objFile test
test: testFunc.c
$(cc) $^ -lCfunc -o $@ $(CFLAGS)
objFile: $(libObjs)
gcc -shared -o ../lib/libCfunc.so $(libObjs)
objFile/cacheOp.o: Bodyer/cacheOp.c Header/cacheOp.h Header/cacheDetails.h
$(cc) -c $< -o $@ $(CFLAGS)
objFile/fileOp.o: Bodyer/fileOp.c Header/fileOp.h
$(cc) -c $< -o $@ $(CFLAGS)
objFile/linuxOp.o : Bodyer/linuxOp.c Header/linuxOp.h
$(cc) -c $< -o $@ $(CFLAGS)
objFile/commonFunc.o : Bodyer/commonFunc.c Header/commonFunc.h
$(cc) -c $< -o $@ $(CFLAGS)
.PHONY : clean
clean :
-rm $(libObjs)
【问题讨论】:
-
为目录的时候为什么要使用objFile这个名字?
-
谢谢,我没注意到。