(目录)

makefile简介
makefile 是一种类似shell的脚本文件,需要make工具进行解释 makefile 内的语句,然后执行内部语句。Makefile的作用是去管理工程项目,比如一个项目有很多c文件,需要利用Makefile去统一进行编译或者其他操作。[1]
相关链接
gnu make 帮助手册 百度百科— make makefile 函数全解 makefile 变量全解
makefile 隐含规则里面的变量
在隐含规则中的命令中,基本上都是使用了一些预先设置的变量。你可以在你的makefile 中改变这些变量的值,或是在 make 的命令行中传入这些值,或是在你的环境变量中设置这些值,无论怎么样,只要设置了这些特定的变量,那么其就会对隐含规则起作用。当然,你也可以利用 make 的“-R”或“--no–builtin-variables”参数来取消你所定义的变量对隐含规则的作用。
我们可以把隐含规则中使用的变量分成两种:一种是命令相关的,如“CC”;一种是参数相的关,如“CFLAGS”
1. 关于C/C++命令的变量
AR
函数库打包程序。默认命令是“ar”。
AS
汇编语言编译程序。默认命令是“as”。
CC
C 语言编译程序。默认命令是“cc”。
CXX
C++语言编译程序。默认命令是“g++”
CPP
C 程序的预处理器(输出是标准输出设备)。默认命令是“$(CC) –E”
RM
删除文件命令。默认命令是“rm –f”
$(AR) = ar
$(AS) = as
$(CC) = cc
$(CXX) = g++
$(CPP) = $(CC) -E
$(RM) = rm -f
2. 关于C/C++命令参数的变量
下面的这些变量都是相关上面的命令的参数。如果没有指明其默认值,那么其默认值都是空
ARFLAGS
函数库打包程序 AR 命令的参数。默认值是“rv”。
ASFLAGS
汇编语言编译器参数。(当明显地调用“.s”或“.S”文件时)。
CFLAGS
C 语言编译器参数。
CXXFLAGS
C++语言编译器参数。
CPPFLAGS
C 预处理器参数。( C 和 Fortran 编译器也会用到)
LDFLAGS
链接器参数。(如:“ld”)
$(ARFLAGS) =
$(ASFLAGS) =
$(CFLAGS) =
$(CXXFLAGS) =
$(CPPFLAGS) =
$(LDFLAGS) =
总结
暂时只有以上使用总结,其他使用可参考帮助文档。
参考链接
gnu make 帮助手册 百度百科— make makefile 函数全解 makefile 变量全解

















