zoukankan      html  css  js  c++  java
  • Makefile = ?= := 区别 $@,$^,$<

    = 是最基本的赋值
    := 是覆盖之前的值
    ?= 是如果没有被赋值过就赋予等号后面的值
    += 是添加等号后面的值

    1、“=”

          make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子:

                x = foo
                y = $(x) bar
                x = xyz

          在上例中,y的值将会是 xyz bar ,而不是 foo bar 。

    2、“:=”

          “:=”表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。

                x := foo
                y := $(x) bar
                x := xyz

          在上例中,y的值将会是 foo bar ,而不是 xyz bar 了。

    3.  $@,$^,$<

    Makefile有三个非常有用的变量。分别是$@,$^,$<代表的意义分别是: 

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

  • 相关阅读:
    Redis宣言
    软件工程
    分布式编程
    编程泛型
    tcp/ip高效编程总结
    IP协议详解
    gevent程序员指南
    网站架构
    这些话,是乔布斯给世间留下的真正伟大礼物
    Flink/Spark 如何实现动态更新作业配置
  • 原文地址:https://www.cnblogs.com/henryliublog/p/9684016.html
Copyright © 2011-2022 走看看