Я разрабатываю для встроенной системы, что означает, что я должен использовать скрипт компоновщика. Это неважно. Я начинаю со следующим правилом Make, чтобы связать все вместе:Добавление зависимостей к правилу без добавления зависимостей к общему списку
$(RELEASETARGET) : $(OFILES)
$(LD) -Tlinker_script.ld --entry ResetISR --gc-sections $(LIBDIR) -o [email protected] $^ $(LIB)
Как вы можете видеть, эта строка содержит ошибку: linker_script.ld является зависимость этого правила, но не упоминается в зависимости. Но если я просто добавить его в конце DEPS:
$(RELEASETARGET) : $(OFILES) linker_script.ld
$(LD) -Tlinker_script.ld --entry ResetISR --gc-sections $(LIBDIR) -o [email protected] $^ $(LIB)
Он также будет добавлен в список после -o и программа не запустится на устройстве.
Ни одно из этих предупреждений не является вредным, но мне нравится жить без них. Невозможно просто удалить часть -Tlinker_script.ld и добавить сценарий в список зависимостей: тогда конфигурация не будет загружена правильно, и программа не будет работать на устройстве.
Итак, как мне добавить эту зависимость, не добавляя ее в список .o-файлов?
Почему бы просто не использовать '$ (OFILES)' вместо '$^'? –