zoukankan      html  css  js  c++  java
  • Makefile中的常用变量与函数

    Makefile中的预定义变量:

    • CC,C语言编译器的名称,cc
    • CPP, C语言预处理器的名称,$(CC) -E
    • CXX, C++语言的编译器名称,g++
    • RM,删除文件程序的名称,rm -f
    • CFLAGS, C语言编译器的编译选项,无默认值
    • CPPFLAGS,C语言预处理器的编译选项,无默认值
    • CXXFLAGS,C++语言编译器的编译选项,无默认值

     注:在使用RM时,一般使用如下语句: -$(RM) $(TARGET) $(OBJS), 符号“-”表示在操作失败时不报错,而是继续执行。例如在不存在TARGET时将继续删除OBJS。

    Makefile中的自动变量:

    • $*, 表示目标文件的名称,不包含扩展名
    • $@, 表示目标文件的名称,包含扩展名
    • $+, 表示所有的依赖文件,以空格隔开,可能含有重复的文件
    • $^, 表示所有的依赖文件,以空格隔开,不重复
    • $<, 表示依赖性中第一个依赖文件的名称
    • $?, 依赖项中,所有比目标文件新的依赖文件
    搜索路径:
    • VPATH,路径之间用:隔开
    声明伪目标:
    • .PHONY:clean
    Makefile中的函数:
    • wildcard, 用法$(wildcard PATTERN), 查找当前目录下所有符合PATTERN的文件,返回文件名,用空格隔开,如$(wildcard *.c)
    • patsubst, 用法$(patsubst PATTERN,REPLACEMENT,SOURCE), 查找SOURCE中符合PATTERN的单词,用REPLACEMENT规则替换,注意,要使用%通配符表示0到n个字符。例:$(patsubst %.c, %.o, $(wildcard *.c))
    • foreach,一般用于多目录下文件的遍历。用法$(foreach VAR,LIST,TEXT), 将LIST字符串中一个空格分隔的单词,先传给VAR,再执行TEXT的表达式,TEXT表达式的返回值作为整个foreach的返回值。
  • 相关阅读:
    彻底弄懂类设计原则之 单一职责原则
    CF1592F1 Alice and Recoloring 1
    CF1592E Bored Bakry
    AT1218 たのしい家庭菜園
    CF1479A Searching Local Minimum
    P3295 [SCOI2016]萌萌哒
    CF1572B Xor of 3
    项目开发和管理需要弄清楚的6个问题
    PowerDesigner中如何生成主键和自增列Oracle版本
    js获取下拉框的选中值和文本值,后台获取用Request["XXXX"]即可
  • 原文地址:https://www.cnblogs.com/DanielZheng/p/2132424.html
Copyright © 2011-2022 走看看