«Вэй Дуншань новое видео - Makefile проста в использовании.»

1. Makefile для компиляции программы

1  привет: hello.c
 2    НКИ - о привет hello.c
 3  чистых:
 4    ет -f привет

  Вышеуказанная четыре строки , сохраненные как Makefile (примечание должна быть ключом Tab для отступа второй и четвертой линии, не может быть пробел отступа)

  сделать заказ в соответствии с обновленными временными метками файлов, чтобы решить, какие файлы должны быть повторно, что позволяет избежать компилятор уже скомпилированные, никаких изменений в программе, компилятор может значительно повысить эффективность работы.

 

2. Makefile для компиляции нескольких программ

1  тест: main.c sub.c 
 2      GCC -o тест main.c sub.c

  Это может составить несколько исходных файлов. Но есть недостаток, если вы измените файл заголовок .h, Makefile не будет выполнена, поскольку Makefile не обнаружила обновление файлов.

 

1  тест: main.c sub.c sub.h
 2      GCC -o тест main.c sub.c

  Эта проблема может быть решена. Однако, если вы измените исходный файл, то все исходные файлы должны быть повторно, если номер исходного файла, будет очень неэффективно.

 

1  тест: main.o sub.o
 2      GCC - O тест main.o sub.o
 3      
4  main.o: main.c
 5      GCC -c - о main.o main.c
 6  
7  sub.o: sub.c
 8      НКУ -c - о sub.o sub.c    
 -      
10  чистые:
 11      ет тест * .o -f

  Это изменение исходного файла, вы будете иметь только перекомпилировать измененные исходные файлы. Повышение эффективности кодирования. Но, как и слишком много правил слишком много, не поддерживает обнаружение файлов заголовков.

 

1  тесты: main.o sub.o
 2      НКА - о тесте main.o sub.o
 3      
4 % .o:% .c
 5      НКА -c -o $ @ $ <
 6      
7  чистые:
 8      ет тест * .o - е

  Это выглядит довольно аккуратные. Но до сих пор не может обнаружить файлы заголовков.

 

. 1  Тест: main.o sub.o
 2      НКА - O Тест main.o sub.o
 . 3      
. 4 % .o:% .c
 . 5      НКА -C -o $ @ $ <    
 . 6  
. 7  sub.o: sub.h
 . 8      / / бок с ТАВ
 9.  // боковой пустой строки без TAB 
10  Clean:
 . 11      RM Test -f * .o

  Физическая экспертиза может заголовок, но файлы заголовки должны быть добавлены вручную.

 

 

. 1 OBJS: = main.o sub.o
 2  
. 3  Тест: $ (OBJS)
 4.      GCC Test -o $ ^
 5.  
6.  
7.  # Определяет , есть ли необходимость зависимостей
 8.  # .Main.od .sub.od
 9. Dep_files: = $ ( в цикле , Р, $ (OBJS), $ (F) 2.d.)
 10 dep_files: = $ ($ подстановочные (dep_files))
 . 11  
12  # , чтобы включить его зависимостей
 13  ifneq ($ (dep_files),)
 14    включаемого $ ( dep_files)
 15  ENDIF
 16  
. 17  
18 % .o:% .c
 . 19      НКА-, -MD, -C -o $ D $ @ $ @ <..
 20      
21  
22 Чистота:
 23      Кт * .o тест - F
 24  
25  distclean:
 26      гт $ (dep_files) * .o тест -f

  Это будет автоматически обнаруживать файлы заголовков.

 

рекомендация

отwww.cnblogs.com/zhuangquan/p/11775239.html