Зависимость не учитывается в make-файлеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Зависимость не учитывается в make-файле

Сообщение Anonymous »

У меня есть следующий make-файл

Код: Выделить всё

SRCS = a.cpp
OBJS = $(SRCS:.cpp=.o)

all:    $(MAIN)
@echo  Compiled successfully

$(MAIN): $(OBJS)
$(CXX) $(LFLAGS) $(CFLAGS) $(INCLUDES) -o $(MAIN) $(OBJS) $(LFLAGS) $(LIBS)

.cpp.o:
$(CXX) $(LFLAGS) $(CFLAGS) $(INCLUDES) -c $<  -o $@
Когда я запускаю make all, изначально файлы .o не существуют, поэтому выполняется правило .cpp.o: (a.o: a.cpp ), а затем я вижу, что правило $(MAIN): выполняется, однако кажется, что правило $(MAIN): выполняется до создания объектного файла a.o, и make не может сказать что файл 'a.o' не найден.
Это происходит не всегда, что предполагает наличие состояния гонки, которое может произойти, если $(MAIN): не «ждет», пока .cpp.o: не завершится..

Подробнее здесь: https://stackoverflow.com/questions/784 ... a-makefile
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»