简体   繁体   中英

Makefile is always not up to date even without any changes

I have a directory with two folders, src and bin with the makefile at root directory. This makefile keeps compiling (not up to date) even without changes. Am I missing something with this makefile?

all:
    make a b

a: ./src/a.cpp
    g++ -o ./bin/a ./src/a.cpp

b: ./src/b.cpp
    g++ -o ./bin/b ./src/b.cpp

Your rules claim to create the files a and b , but they don't: They create bin/a and bin/b .

So when make checks your rules, it always finds that a and b don't exist and tries to create them by executing their associated commands.

Possible fix:

.PHONY: all

all: bin/a bin/b

bin/a: src/a.cpp
    g++ -o bin/a src/a.cpp

bin/b: src/b.cpp
    g++ -o bin/b src/b.cpp

On .PHONY : https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html#Phony-Targets

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM