zoukankan      html  css  js  c++  java
  • Linux基础14-makefile

    makefile 是对项目的代码管理工具。

    在编写大型项目的时候,如果编译的文件多,文件所属的目录复杂。直接采用GCC编译,会很繁琐。因此,采用Makefile对编译文件进行管理。

    目的:了解makefile的文件写作格式

    命名方式:makefile 或者 Makefile

    规则:目标、依赖、命令

    目标:依赖条件
    
    (Tab)命令

    1.创建一个main.c文件

    #include<stdio.h>
    int main(){
            printf("hello world
    ");
            return 0;
    }

    2.创建对应的makefile文件

    sailfish@DESKTOP-GSV91L5:~/c_file$ cat makefile
    app:main.c
            gcc main.c -o app

    3.直接在makefile文件夹目录输入make

    sailfish@DESKTOP-GSV91L5:~/c_file$ make
    gcc main.c -o app
    sailfish@DESKTOP-GSV91L5:~/c_file$ ls
    app  main.c  makefile
    sailfish@DESKTOP-GSV91L5:~/c_file$ ./app
    hello world

    if makefile中有多个目标与依赖,可以分解为多个小依赖

    终极目标都写在第一条规则。

    Makefile向下检索,构建出一颗关系依赖树。

    从下向上执行命令,生成最终的目标文件。

    Makefile在每次生成时,会检查源文件时间,如果时间 目标文件:依赖条件,依赖条件晚于目标文件,则需要跟新目标文件。

    可以提高多文件程序的编程效率。

    Makefile  设置变量

      obj = main.o add.o sub.o mul.o

    取值:  

      app:$(obj)

        gcc $(obj) -o app

    Makefile  模式规则

      $< &@ makefile中的自动变量

    %.o:%c

      gcc -c $< -o &@  

       //   &<  规则中的第一个依赖

      //  &@  规则中的目标

      //  $^  规则中的所有依赖

    main.o:main.c

      gcc -c main.c -o main.o

    Makefile中自己维护的变量:

    CC == cc

    CPPFLAGS = -I

    CFLAGS = -WALL -g -c

    LDFLAGS = -L -l

  • 相关阅读:
    S3:代理模式 Proxy
    S2:外观模式 Facade
    S1:适配器 Adapter
    C5:单例模式 Singleton
    C4:原型模式 Prototype
    C3:建造者模式 Builder
    C2:抽象工厂 Abstract Factory
    C1:工厂模式 Factory
    设计模式分类
    数据访问对象模式
  • 原文地址:https://www.cnblogs.com/sailifsh-lyh/p/10823852.html
Copyright © 2011-2022 走看看