zoukankan      html  css  js  c++  java
  • Makefile关键字

    @

    makefile会把将要执行的命令行在命令执行前输出到屏幕上,使用@可以避免显示出命令本身
    @ echo 正在编译…$make显示正在编译…
    echo 正在编译…$make显示:

    echo 正在编译
    正在编译
    

    override

    如果一个变量的值需要在编译选项中指定或由系统传入,那么makefile中可以使用override关键字来设置,使这个变量的赋值被忽略

    define

    使用define关键字可以定义多行变量

    define two-lines
        echo foo
        echo $(bar)
    endef
    

    wildcard

    wildcard是makefile的关键字,作用是让通配符(Makefile中的通配符就是*, %算pattern,不是通配符)在变量或函数中展开,通常用于提取指定目录的某一类型文件。因为在Makefile的规则中,函数中的通配符是不会被展开的,网上有说法是变量的定义时也不会展开,但经过我的测试,变量的定义是可以展开的

    DES:= ./*.c
    all:
    	@echo  $(DES)
    
    
    ./1.c ./2.c        #变量可以展开
    
    DES:=$(patsubst %.c,%.z,*.c)
    all:
    	@echo  $(DES)
    
    
    *.z                #通配符不能在函数中展开
    
    DES:=$(patsubst %.c,%.z,$(wildcard ./*.c))
    all:
    	@echo  $(DES)
    
    
    ./1.z ./2.z    #wildcard将通配符展开
    

    export

    将变量导出,以便于所有的子makefile都可以使用

    include

    和C语言的#include一样,将后面的文件展开到当前位置

  • 相关阅读:
    2018第45周日
    RabbitMQ消息的消费与持久化
    Rabbitmq的调度策略
    Rabbitmq交换器Exchange和消息队列
    RabbitMQ概念
    微服务拆分
    微服务演化
    2018第44周日
    福勒(Martin Fowler)
    微服务架构定义那点事
  • 原文地址:https://www.cnblogs.com/xiaojiang1025/p/5955081.html
Copyright © 2011-2022 走看看