我的makefile不會檢查是否有任何更新,只是編譯,如果它有多個單一的源文件中添加。它工作正常,只有一個源文件。Makefile不檢查是否更新,只是編譯
它似乎是任何未列出的源文件,因爲第一個文件將始終被重新編譯和鏈接。
SOURCES=myclass.cpp mylock.cpp
EXECUTABLE=locktest
LIBRARIES=-pthread
CFLAGS=-Wall
CXX=g++
DIR=host/
EXE=$(EXECUTABLE)
OBJECTS=$(SOURCES:%.cpp=$(DIR)%.o)
$(EXE): $(OBJECTS)
$(CXX) -o [email protected] $(OBJECTS) $(LIBRARIES)
$(DIR)%.o: %.cpp $(DIR)
$(CXX) $(CFLAGS) -c $< -o [email protected]
$(DIR):
@mkdir $(DIR)
clean:
@rm $(OBJECTS) $(EXE)
@rmdir $(DIR)
輸出顯示問題:
[email protected]:~/Desktop/Locktest$ make
g++ -Wall -c myclass.cpp -o host/myclass.o
g++ -Wall -c mylock.cpp -o host/mylock.o
g++ -o locktest host/myclass.o host/mylock.o -pthread
[email protected]:~/Desktop/Locktest$ make
g++ -Wall -c myclass.cpp -o host/myclass.o
g++ -o locktest host/myclass.o host/mylock.o -pthread
你是正確的!這只是目錄。 – MRJ