Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile 是否可以让make将缺少的依赖项视为最新的?_Makefile - Fatal编程技术网

Makefile 是否可以让make将缺少的依赖项视为最新的?

Makefile 是否可以让make将缺少的依赖项视为最新的?,makefile,Makefile,如果我有一个Makefile,如下所示 server : network.o storage.o logic.o ld network.o storage.o logic.o -o server network.o : network.c netdefs.h cc -c -o network.o network.c storage.o : storage.c defs.h cc -c -o storage.o storage.c logic.o : logic.c

如果我有一个Makefile,如下所示

server : network.o storage.o logic.o
    ld network.o storage.o logic.o -o server

network.o : network.c netdefs.h
    cc -c -o network.o network.c

storage.o : storage.c defs.h
    cc -c -o storage.o storage.c

logic.o : logic.c defs.h
    cc -c -o logic.o logic.c

.PHONY : promote clean reallyclean

promote : server
    cp server /staging/new_servers

clean : 
    rm -f *.o

reallyclean : clean
    rm -f server
我执行以下命令序列

make server # builds ther server from source
make clean  # tidies up the .o files
make promote # send the built server to the staging area
毫不奇怪,make从头开始重新构建服务器,因为.o文件是服务器的依赖项,并且丢失了

如果服务器文件本身不在那里,我确实希望发生这种情况(否则就没有什么可升级的),但是如果有服务器并且没有.o文件,那么我希望假设服务器是最新的,并对其进行升级

这是可以实现的吗?

啊,明白了

使用.SECONDARY或.mediate标记我要忽略的所有中间产物,例如添加:

.SECONDARY : network.o storage.o logic.o
(我曾尝试过这些方法,但在我的实际解决方案中,我有一个被忽略的中间层,它依赖于一个未被忽略的中间层,因此make仍在重建假定被忽略的中间层,并因此重建服务器。)