• makefile 自动化变量


     

    print xxx: *.c *.h
        echo $?
        echo $<
        echo $^
        echo $@
        touch print

    $? 所有比目标文件更新的依赖文件列表,空格分割。如果目标是静态库文件名,代表的是库成员( .o文件)。

    $< 规则的第一个依赖文件名。如果是一个目标文件使用隐含规则来重建,则它代表由隐含规则加入的第一个依赖文件

    $^ 规则的所有依赖文件列表,使用空格分隔。如果目标是静态库文件,它所代表的 只能是所有库成员( .o文件)名。一个文件可重复的出现在目标的依赖中,变量 “ $^”只记录它的一次引用情况。就是说变量“ $^”会去掉重复的依赖文件

     

     

    image

     

    $@ 表示规则的目标文件名。如果目标是一个文档文件( Linux中,一般称.a文件为 文档文件,也称为静态库文件),那么它代表这个文档的文件名。在多目标模式 规则中,它代表的是哪个触发规则被执行的目标文件名。

    如make xxx 就会输出xxx, make 则会输出print

  • 相关阅读:
    康托展开
    Linux Command Line Basics
    hihoCoder 1401 Registration
    C++ 参考网站
    Linux 下的常用工具
    SQL 命令
    GNU MAKE 笔记
    一道基本的计算几何题
    uva 1451 平均值
    bzoj 1826 缓存交换
  • 原文地址:https://www.cnblogs.com/cute/p/4953469.html
Copyright © 2020-2023  润新知