zoukankan      html  css  js  c++  java
  • Makefile快速查阅

    target ... : prerequisites ...
    command
        target         //目标文件,O文件 或者是可执行文件
        prerequisites  //生成target所需要的文件或者目标
        command           //make需要执行的命令(任意shell命令),makefile中的命令必须以[tab]开头
        
    #符号:用于注释,如果要显示符号本身,需要进行转义,#    

    @符号
        通常makefile会将其执行的命令行执行前输出到屏幕上。
        如果@加到命令行前,这个命令将不被make回显出来。
        
    -符号
        通常删除或创建文件如果碰到文件不存在或者已经创建了,那么希望忽略掉这个错误,继续执行。
        -rm dir;
        -mkdir aaadir;

    +符号
        它的意思和 '-' 相反,表示不忽略
        
    $符号
        主要是扩展打开makefile中定义的变量

    符号:换行符,方便显示。将太长的一行分割成多行方便显示,逻辑上还是一行;    

     $@  //目标文件,
     $^  //所有的依赖文件
     $<  //第一个依赖文件
     $?

     
    “=”说明
    VIR_A = A
    VIR_B = $(VIR_A) B
    VIR_A = AA
    经过上面的赋值后,最后VIR_B的值是AA B,而不是A B。在make时,会把整个makefile展开,拉通决定变量的值

     
    “:=”说明
    VIR_A := A
    VIR_B := $(VIR_A) B
    VIR_A := AA
    ”:=”就表示直接赋值,赋予当前位置的值

     
    “?=”说明
    “?=”表示如果该变量没有被赋值,则赋予等号后的值。
    VIR := old_value
    VIR ?= new_value
    这种情况下,VIR的值就是old_value

     
    +=说明
    “+=”和平时写代码的理解是一样的,表示将等号后面的值添加到前面的变量上

    $@表示生成目标
     
    比如
    boot.o : boot.c
         gcc -o $@ -c $<
         
    其中 $@表示生成的目标 boot.o
      $< 表示生成的依赖文件 boot.c

    ===================================================

    https://blog.csdn.net/weixin_38391755/article/details/80380786
    https://www.cnblogs.com/wang_yb/p/3990952.html
    https://blog.csdn.net/u012989012/article/details/80572043
    https://blog.csdn.net/weixin_38391755/article/details/80380786
    https://www.cnblogs.com/wang_yb/p/3990952.html

     

    知行合一
  • 相关阅读:
    android getContext()
    android DB notify
    android 调用系统截图
    调用新浪微博客户端发送图片
    Hadoop 面试 小结
    HADOOP 安装HIVE
    ORACLE ArcSDE Lock request conflicts with an established lock
    OBIEEClusterControler通信的问题
    ORACLE RAC 集群的启动和关闭
    HADOOP 配置Tip 配置hadoop.tmp.dir
  • 原文地址:https://www.cnblogs.com/grooovvve/p/14453458.html
Copyright © 2011-2022 走看看