LINUX.ORG.RU

make всегда пересобирает

 


0

2

Правила сборки просты: для каждого cpp нужно собрать свой exe:

all: $(TRGS)
$(TRGS): %.exe :%.cpp 
^I $(CXX) -o $@ $^

Но, даже если я не меняю cpp, и файлы, которые я включил в cpp - пересборка бессмысленно происходит по команде make. Т.е. make не видит, что цели не нужно пересобирать.

Как make заставить отслеживать изменения?



Последнее исправление: sci_reseacher (всего исправлений: 1)

а зачем там второе двоеточие перед %.cpp?

anonymous
()

4.2

$ cat ./Makefile
TRGS := test.o
all: $(TRGS)
$(TRGS): %.o :%.cpp
        $(CXX) -o $@ $^
$ make
g++ -o test.o test.cpp
$ make
make: Цель `all' не требует выполнения команд.
$

anonymous
()
Ответ на: комментарий от beastie

Спасибо!

%.exe: %.cpp

это проще чем,

$(TRGS): %.exe :%.cpp 

но, проблема была в том, что сунул $(TRGS) в .PHONY )))

sci_reseacher
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.