Мой make-файл не будет проверять, были ли какие-либо обновления и компилируется только в том случае, если в него добавлено более одного исходного файла. Он отлично работает только с одним исходным файлом ,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