Вот часть из моих makefile
:Систематически чистые файлы перед компиляцией
all: $(CMX_DOMAIN)
analyze
clean:
rm -rf */*.o */*.cmo */*.cmi */*.cmx */*.cma */*.cmxa */*.cmo */*.cmi */*.annot \
$(AUTOGEN) */*~ */*.log */*.output depend analyze print batch
После изменения кода, мне нужно набрать make clean
make
перед запуском. В противном случае очень часто возникает проблема несогласованных зависимостей.
Теперь я хотел бы внести поправки в makefile
, так что clean
делается систематически перед каждым звонком all
. Затем я пишу
all: clean
$(CMX_DOMAIN)
analyze
Когда я запускаю make
, после очистки файлов, он дает мне ошибку /bin/bash: values/consts_bool.cmx: No such file or directory
, где values/consts_bool
является первым компонентом в списке файлов. Это странно, потому что это нормально, что этот файл не существует, который должен быть сгенерирован впоследствии.
Может ли кто-нибудь помочь?
Вы должны исправлять «проблему несогласованных зависимостей», не пытаясь добавить правило 'clean'. Правильный make-файл всегда будет восстанавливать точно то, что устарело, и не восстанавливать то, что не устарело. Если ваш make-файл не делает этого, то он написан неправильно. Как говорит tripleee, если вы хотите каждый раз чистить все, то makefile совершенно бесполезен для вас. Просто напишите сценарий оболочки, который каждый раз компилирует ваш код с нуля и забывает о том, чтобы сделать вообще. – MadScientist