IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Makefile学习笔记-wildcard notdir patsubst用法

    admin发表于 2011-02-22 08:56:47
    love 0

    在手写Makefile时,用上这三个函数非常方便,减少了很多人力劳动哈

    用法介绍:

    wildcard:  扩展通配符 例如将* 进行匹配

    notdir:  去除目录 类似于basename的用法

    patsubst: 替换通配符

    说起来比较费劲,直接看例子的话,比较好理解

    例子介绍:

    在test目录下a.cpp和b.cpp,sub目录下c.cpp和d.cpp

    建立一个简单的Makefile文件:

    src=$(wildcard *.c ./sub/*.c)
    dir=$(notdir $(src))
    obj=$(patsubst %.c,%.o,$(dir) )
     
    all:
     @echo $(src)
     @echo $(dir)
     @echo $(obj)
     @echo "end"

    输出结果为:

    #wildcard把 指定目录 ./ 和 ./sub/ 下的所有后缀是c的文件全部展开
    a.cpp b.cpp ./sub/c.cpp ./sub/d.cpp
    #notdir把展开的文件去除掉路径信息
    a.cpp b.cpp c.cpp d.cpp
    #patsubst把$(dir)中的变量符合后缀是.c的全部替换成.o
    a.o b.o c.o d.o
    

    您可能对下面文章也感兴趣:

    • linux下x86架构下的内联汇编用法


沪ICP备19023445号-2号
友情链接