• make简介


    首先make可以简单甘分为make_zhi()同埋ni_make(a)两种带参数同埋不带参数嘅函数。

    博君一笑啫,切入正题。。。。

    make对Makefile进行处理,将距变成shell可执行嘅脚本,最后由shell解释器来执行有make翻译过嘅脚本。并且系翻译一句然后shell执行一句

    ^-^  make中有潜规则:只要make看到一个.o文件,它就会自动甘把对应的.c文件加到依赖文件中,而且gcc c  .c都会被推导出来

    就好似

    /*makefile*/

    CC = gcc
    OBJ = main.o mytool1.o mytool2.o

    make: $(OBJ)
            $(CC) -o main $(OBJ)

    main.o: mytool1.h mytool2.h    //隐藏嘅命令式gcc -c  main.c
    mytool1.o: mytool1.h   //同样系潜规则
    mytool2.o: mytool2.h    //一样


    .PHONY: clean
    clean:
            rm -f main $(OBJ)

    makefile中有一D内置宏,分别系$@$^$<。代表的意义分别系:
    $@--目标文件,
    $^--所有嘅依赖文件,
    $<--第一个依赖文件。

    可改写为

    /*makefile*/

    CC = gcc
    OBJ = main.o mytool1.o mytool2.o

    main: $(OBJ)
            $(CC) -o $@ $^

    main.o: main.c mytool1.h mytool2.h
            $(CC) -c $<
    mytool1.o: mytool1.c mytool1.h
            $(CC) -c $<
    mytool2.o: mytool2.c mytool2.h
            $(CC) -c $<

    .PHONY: clean    //假目标避免和同名文件冲突,否则无依赖clean文件永远系最新,不必执行后面嘅命令
    clean:
            rm -f main $(OBJ)// 伪指令,不生成目标

     

    总之make就系N多个gcc -c自动化执行脚本,另外听讲linux下有个automake可以避免出错

  • 相关阅读:
    How to Analyze Java Thread Dumps
    Attention to encodings
    Inspect Memory Leak
    Java boolean operator &=, |= and ^=
    网站PC端和移动端,用户通过设备识别
    网页平滑过渡效果和自适用,三角图形,动效
    开机自动调用.bat文件且浏览器全屏展示
    react中使用屏保
    Axios的get和post请求写法
    React在componentWillMount中请求接口数据结束后再执行render
  • 原文地址:https://www.cnblogs.com/encode/p/2545333.html
Copyright © 2020-2023  润新知