Makefile

来源:互联网 发布:背地图的软件 编辑:程序博客网 时间:2024/06/02 05:12
           1. makefile就像一个Shell脚本一样,可以执行操作系统的命令,它定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作
  
           2.make  是一个命令工具,用来解释Makefile文件中的指令(规则)。可以避免许多不必要的编译


           3.   编写规则:  目标:依赖
                      执行指令

1.编写c++的makefile文件

#注释makefile:all:helloclean:-rm main.o hellohello:main.o    g++ -g -o hello main.omain.o:main.cpp    g++ -c -g main.o  main.cpp


2.编写C的makefile文件
#注释makefile:all:helloclean:-rm main.o hellohello:main.o    gcc -g -o hello main.omain.o:main.c    gcc -c -g main.o main.c


 4.  makefile文件引入变量需加 $


  5.makefile  预定义变量


   $*                            不包含扩展名的目标文件名称。
   $+                           所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。
   $<                            第一个依赖文件的名称。
   $?                            所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。
   $@                          目标的完整名称。
   $^                             所有的依赖文件,以空格分开,不包含重复的依赖文件。
   $%                            如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为
                                        (image.o),则 $@ 为 ,而 $% 为 image.o。
   AR                            归档维护程序的名称,默认值为 ar。
   ARFLAGS               归档维护程序的选项。
   AS                            汇编程序的名称,默认值为 as。
   ASFLAGS               汇编程序的选项。
   CC                           C编译器的名称,默认值为 cc。
   CFLAGS                 C编译器的选项。
   CPP                         C 预编译器的名称,默认值为 $(CC) -E。
   CPPFLAGS            C预编译的选项。
   CXX                         C++编译器的名称,默认值为 g++。
   CXXFLAGS             C++编译器的选项。
   FC                             FORTRAN编译器的名称,默认值为 f77。
   FFLAGS                   FORTRAN编译器的选项。


   6. Makefile以文件名:文件名的形式比较冒号右边的文件是不是较左边的文件有更新,

            如果有更新则执行下一行的程序代码。因此Makefile可以把文件关联起来




0 0