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中的自动变量:
- $*, 表示目标文件的名称,不包含扩展名
- $@, 表示目标文件的名称,包含扩展名
- $+, 表示所有的依赖文件,以空格隔开,可能含有重复的文件
- $^, 表示所有的依赖文件,以空格隔开,不重复
- $<, 表示依赖性中第一个依赖文件的名称
- $?, 依赖项中,所有比目标文件新的依赖文件
搜索路径:
声明伪目标:
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的返回值。
fgetcsv之在Ubuntu 10.10下不能解析中文的问题Linux Desktop Entry 文件深入解析相关资讯 Linux教程
- Linux教程:如何在命令行中查看目 (07/28/2014 12:22:23)
- Linux 修改root密码 (11/03/2012 07:53:38)
- su - root 与su root的区别 (06/06/2012 00:39:40)
| - Linux进程间通信:消息队列 (01/28/2013 09:43:00)
- U盘安装Linux开机无法启动解决方法 (10/07/2012 08:55:52)
- Windows 7/Linux 同步时间 (05/15/2012 06:17:55)
|
本文评论 查看全部评论 (0)