Как да избегнете повторно свързване в Makefile

Написах прост makefile и не успях да избегна ненужното повторно свързване

Target: foo1.o foo2.o
    LINK COMMAND

.c.o:
    COMPILE command

Всеки път, когато се опитвам да направя TARGET, дори ако не са актуализирани изходни файлове, командата LINK винаги се изпълнява.

Как мога да избегна това ненужно повторно свързване?

Благодаря,


person charles    schedule 24.02.2011    source източник
comment
Както е написано, това трябва да работи (с изключение на промените в регистъра). Можете ли да предоставите действителния makefile и препис от двукратното му изпълнение?   -  person wnoise    schedule 25.02.2011
comment
Абстрахирането на сложен код е добър план, но човек трябва да внимава, за да се увери, че абстрактната версия всъщност представлява пълния код.   -  person dmckee --- ex-moderator kitten    schedule 25.02.2011
comment
Благодаря @wnoise и @dmckee, разбрах проблема. Опитах се да запазя изпълнимия файл в друга директория, т.е. tmp/foo, makefile не открива клеймото за време на поддиректорията. Чрез промяна на TARGET като tmp/TARGET решава проблема.   -  person charles    schedule 25.02.2011


Отговори (1)


(Отговорено в коментар: Вижте Изпразване на информационен прозорец, когато се щракне върху маркер )

ОП написа:

Опитах се да запазя изпълнимия файл в друга директория, т.е. tmp/foo, makefile не открива клеймото за време на поддиректорията. Чрез промяна на TARGET като tmp/TARGET решава проблема.

person Community    schedule 24.01.2015