学习Makefile笔记
来源:互联网 发布:东莞人工智能公司 编辑:程序博客网 时间:2024/06/06 10:00
一常用函数
1wildcard
SOURCES= $(wildcard *.c)
这行会产生一个所有以 '.c'结尾的文件的列表,然后存入变量 SOURCES里
2patsubst
OBJS =$(patsubst %.c,%.o,$(SOURCES)).................(1)
三个参数,第一个参数是patsubst+匹配格式,第二个参数是目标转换成的匹配格式,第三个参数是源字符串
OBJS =$(FILES:%.c=%.o) 作用与命令(1)相同
3addprefix
$(addprefix <prefix>,<names...>)
把前缀<prefix>加到<names>中的每个单词后面,返回加过前缀的文件序列
4notdir
notdir把展开的文件的路径去掉,只显示文件名而不包含其路径信息
FILES =$(notdir $(SOURCES))
这行的作用是把上面以'.c'结尾的文件的文件列表中附带的路径去掉,只显示符合条件的文件名。
5filter
函数$(filter,<pattern…>,text)
保留text中符合<pattern>中的字符串
6firstword
函数$(firstword<text>),功能取回<text>中第一个单词
二自动变量
自动变量含义$@目标集合$%当目标是函数库文件时,表示其中的目标文件名$<第一个依赖目标。如果依赖目标是多个,挨个表示依赖目标$?比目标新的依赖目标的集合$^所有依赖目标的集合,去除重复的依赖目标$+所有依赖目标的集合,不去除重复的依赖的目标$*这个是GNU make特有的,其他的make不一定支持
三常用的变量名
四制定Makefile
make -f test.mk
五自己写的Makefile模板
CXX=g++CC=gccBIN_DIR=binSRC_DIR=srcINCLUDE_DIR=-I./include -I./include1SOURCES=$(wildcard $(SRC_DIR)/*.cpp)OBJECTS=$(patsubst %.cpp, %.o, $(SOURCES))INCLUDE=$(wildcard $(INCLUDE_DIR)/*)CXXFLAGS=LDFLAG=BIN=$(BIN_DIR)/aaa.PHONY=all cleanall:$(BIN)$(BIN):$(OBJECTS)@echo "aa"$(CXX) -o $@ $^ %.o:%.cpp@echo "bb"$(CXX) $(INCLUDE_DIR) -c $(CXXFLAGS) -o $@ $^ $(LDFLAG) clean:rm -rf $(BIN) $(OBJECTS)
0 0
- Makefile学习笔记
- makefile学习笔记
- makefile学习笔记(1)
- Makefile学习笔记
- MakeFile学习笔记一
- makefile学习笔记
- makefile学习笔记
- Makefile的学习笔记
- makefile学习笔记
- Makefile学习笔记
- Makefile学习笔记
- Makefile学习笔记
- makefile学习笔记
- Makefile学习笔记
- makefile学习笔记
- Makefile的学习笔记
- Makefile学习笔记
- makefile学习笔记
- 设计模式——状态模式(有限状态机)
- misc_register
- gcc在x64体系中如何传递参数
- 测试用二叉树生成代码
- Tomcat热部署方法(3种)
- 学习Makefile笔记
- Castor实现XML与Java的互转
- android SAX解析XML学习笔记
- Web Services 指南之:Web Services 相关标准
- c# 资源文件做背景音乐
- iOS中UIImage和UIColor之间的转换
- struts2 url 中文乱码问题解决方法
- 获取status bar的高度
- lcd驱动程序之显示图片