2013-10-24 1 views

ответ

2

Как теперь, то clean цель зависит на "файлы" rm, -f, *.o и *~. Таким образом, он будет запущен только в том случае, если эти «файлы» были изменены.

Линия

clean: rm -f *.o *~ 

должны быть две линии

clean: 
    rm -f *.o *~ 

Обычный способ написать мейкфайлы что-то вроде этого:

# Variables 
VARIABLE1=value1 
VARIABLE2=value2 
# etc... 

# Targets 
# The first target is the "default" target when `make` is invoked 
# without any specific target 
default: some_other_target 

# Other targets... 

В вашем случае, если вы хотите цель «по умолчанию», чтобы быть clean тогда, если вы будете использовать шаблон приведенный выше, вы делаете default зависит от clean цели:

default: clean 
+0

так как я могу его удалить? когда я делаю «make», в каталоге появляются a.o, b.o и c.o. Я пытаюсь избавиться от них. – kayla

+0

@TidusSmith Читать мой ответ, у него есть решение. –

+0

использовал две линии, чтобы заставить ее работать? файлы .o по-прежнему не удаляются. – kayla

0

@Tidus Смит. Если вы хотите удалить объекты после компиляции, вы можете добавить команду rm после $ (CC).

main: $(OFILES) 
    $(CXX) $(OFILES) 
    rm -f *.o *~ 

Это гарантирует, что после завершения компиляции все файлы .o и * ~ файлы будут удалены.

Смежные вопросы