• 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

  • 相关阅读:
    Lotus iNotes 用户启用标识符保险库
    Domino NSD日志诊断/分析
    从 Domino 7.x 升级到 Domino 8.0.1 后服务器性能下降
    Domino服务器命令表
    源码:使用LotusScript发送mime格式邮件
    构架Domino CA中心之一
    如何在DNS中增加SPF记录
    构架Domino CA中心之二
    在Ubuntu 8.04上安装Domino R8.02
    内存陷阱 驯服C++中的野指针 沧海
  • 原文地址:https://www.cnblogs.com/sailifsh-lyh/p/10823852.html
Copyright © 2020-2023  润新知