zoukankan      html  css  js  c++  java
  • Makefile的学习

    1、 Makefile的定义

    •    ?=若变量未定义,则定义;+=在变量后面追加;:=和=均为赋值符号(其中,=是最基本的赋值,会将Makefile全部展开后决定对应的值,而:=表示变量的值取决于当前在Makefile里面的位置)。
    •  Makefile里面的一些控制语句记得敲空格,想调用shell脚步赋值,可以这样写PWD := $(shell pwd).

              总结:Makefile和sheel脚步有很多类似之处。

    2、 Makefile的规则

        make命令执行时,需要一个Makefile文件,以用来告诉make命令需要怎么样去编译和链接,规则是:

    •    如果这个工程没有编译过,那么所有的c文件都要编译并链接。
    •    如果这个工程的c文件被修改过,那么我们只编译被修改过的c文件,并链接目标程序。
    •    如果这个工程的头文件被改变了,那么我们只需要编译引用这个头文件的c文件,并编译链接。(具体怎么知道头文件修改了,需要在编译时把头文件列出来)

    3、 Makefile的通配符

       wildcard扩展通配符:SOURCE += $(wildcard *.c)获取工作目录下的所有.c55kLTgjDv文件。

       patsubst替换通配符:OBJECTS = $(patsubst %.c,%.o,&(SOURCE)或者OBJECTS = $(SOURCE:%.c=%.o)

       通配符通常发生在以下时刻:

    •    在规则的目标、依赖中的通配符,make在读取Makefile时自动为其进行匹配处理(即展开),规则是由make去管理的。
    •    在规则的命令中的通配符不需要make来操心,它们总是由shell来展开。
    •     除了上面两点之外的其他地方(如变量定义),不能直接使用统配符,只能通过wildcard来达到目的,得到以后就可以用静态模式了。

     4、 Makefile的静态模式

         其中%.c到%.o是通配符转换,其中在实际编码时target可以是不需要的。

  • 相关阅读:
    js加法计算器
    js基础语句
    箭头点击左右滚动-18
    返回头部,滚动显示-17
    图片定位一个地方
    最值一看专题图片轮播图-16
    右侧常用浮动导航,返回顶部-15
    产业带多种轮播效果,头部效果-14
    分辨率判断-13
    图片自动滚动,鼠标滑过悬停-12
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13309074.html
Copyright © 2011-2022 走看看