makefile автоматическое удаление файлов .o

Я изучаю курс C ++ в колледже, и они хотят, чтобы мы вручную вводили все тестовые файлы ... Я знаю, однако, что есть способ сделать это без out, вот как я получил текущий ( http://pastebin.com/6d9UtKM4 ) make-файл. Мой вопрос: почему Этот make-файл автоматически удаляет все файлы .o, которые он использует для компиляции, когда это делается? Это меня не убивает, но я хотел бы сохранить файлы .o. Я вставил make-файл сюда ( http://pastebin.com/6d9UtKM4 ). Я также вставил текущий результат выполнения "make tests" сюда ( http://pastebin.com/h3Ny3dib ). (Обратите внимание на часть внизу страницы, которая удаляет все e .o файлы автоматически.)

Я также хотел бы иметь возможность создать его следующим образом:

  • g ++ -o compileDir / assemblyr.o -c -Wall src / assemblyr.cpp
  • g ++ - o compileDir / string.o -c -Wall src / string.cpp
  • g ++ -c -Wall -o compileDir / test_assignment.o testSrc / test_assignment.cpp
  • g ++ -o testDir / test_assignment compileDir / test_assignment.o compileDir /string.o compileDir / assemblyr.o
  • g ++ -c -Wall -o compileDir / test_bracket.o testSrc / test_bracket.cpp
  • g ++ -o testDir / test_bracket compileDir / test_bracket.o compileDir / string.o compileDir / ассемблер.o
  • testDir / test_bracket
  • testDir / test_assignment

Другими словами, я хочу, чтобы он все скомпилировал, а затем все запустил. Надеюсь, это не слишком большая проблема!

Изменить: Дополнительная информация: (Это код, который выполняет "тесты")

tests: assembler.o string.o $(test_output) $(test_stringOutput)
        @echo '--- Testing complete ---'

$(testDir)%: $(compileDir)%.o string.o
        g++ -o $@ $< $(compileDir)string.o $(compileDir)assembler.o
        $@
        @echo ''

$(compileDir)%.o: $(testSourceDir)%.cpp
        g++ -c -Wall -o $@ $<

$(compileDir)%.o: $(testStringSrc)%.cpp
        g++ -c -Wall -o $@ $<

РЕДАКТИРОВАТЬ: ------------------------- ----------------

Решено с помощью комментариев:

Добавление этой строки исправило это: . PRECIOUS $ (compileDir)%. O

8
задан teynon 6 November 2011 в 00:52
поделиться