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

  • 相关阅读:
    寄存器英文全称
    汇编指令介绍
    汇编指令的基本知识
    第一篇
    Windows下让Git记住用户名密码(https)
    javascript 汉字拼音排序
    KO.js学习笔记(一)
    学javascript突发奇想,只用浏览器就能转换进制
    谨此纪念我的技术成长之路
    委托与事件
  • 原文地址:https://www.cnblogs.com/sailifsh-lyh/p/10823852.html
Copyright © 2011-2022 走看看