Makefile

           1. makefile就像一个Shell脚本一样,可以执行操作系统的命令,它定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作
  
           2.make  是一个命令工具,用来解释Makefile文件中的指令(规则)。可以避免许多不必要的编译


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

1.编写c++的makefile文件

#注释
makefile:
all:hello

clean:-rm main.o hello

hello:main.o
    g++ -g -o hello main.o

main.o:main.cpp
    g++ -c -g main.o  main.cpp


2.编写C的makefile文件
#注释
makefile:
all:hello


clean:-rm main.o hello


hello:main.o
    gcc -g -o hello main.o


main.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可以把文件关联起来




posted @   程序员Android的博客  阅读(45)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示