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

  • 相关阅读:
    b_jd_水坑数量(向外流dfs)
    b_wy_购买商品使得满减最省(01背包)
    b_wy_最优路径(构造树+dfs)
    Redis:List列表相关指令
    Redis:String字符串常用指令
    Redis:linux基本的指令
    Redis:redis-benchmark性能测试/压力测试
    Redis:增大并发量的演进过程
    Kafka的下载安装和测试,及消费端数据中文乱码问题
    Git:常用命令
  • 原文地址:https://www.cnblogs.com/sailifsh-lyh/p/10823852.html
Copyright © 2011-2022 走看看