最近在看代码时发现有个makefile文件,作为一名程序员应该去学会阅读和写Makefile,所以我开始在网上大量查询这方面的知识,现在做一个简单的总结。
这两篇博客总结的非常详细,第二篇博客格式非常棒,更便于查询:
博客1
博客2
如果想具体学习可以仔细读一下上面两篇博客。
下面只是我大致读后提取我需要的东西。
建议把基础的学习一下,在看这写总结会更好。
1.自动变量,见到的非常频繁:
$@ -目标集合
$^ -依赖目标的集合,可以自动去除重复的依赖目标
$< -第一个依赖目标,若依赖目标多个,逐个表示依赖目标
$? -比目标新的依赖目标集合
$% -当目标是函数库文件时,表示其中目标文件名
$+ -所有依赖目标的集合,不会去除重复的依赖目标
$* -GNU make 特有,其他make不一定支持
2.makefile中和shell相关的命令:
RM -rm -f
AR -ar
CC -cc
CXX - g++
CFLAGS c语言编译器参数
CXXFLAGS c++语言编译器参数
ARFLAGS AR命令的参数