从开始学习到了解到makefile自动依赖到目前为止总算是掌握了makefile的自动依赖写法
因为接触的项目代码分布的问题源文件和头文件不在同一个目录下,,网上很多makefile自动依赖的方案不能直接拿来用.所以是在其基础上进行的改编
总体来说 是这么个过程
先决条件 工程目录结构为 顶层中放置
1 Makefile
2 src目录放置源文件
3 inc目录
4 可能有lib目录
生成的程序在顶层目录中
第一步 写好你的环境变量 一般设置如下参数即可
CC=gcc
CFLAGS=-g -rdynamic -W -Wall
SRC=src
INC=-I. -I./inc
LIB=lib/xxxx.a #如果有
TARGET=demo
第二步 获取所有参与编译的源文件
在这步中我所使用的是makefile提供的函数
SOURCES = $(wildcard src/*.cpp)
OBJ=$(patsubst %.cpp, %.o,$(SOURCES))
这样在SOURCES中获取到的是所有参加编译的cpp文件 但是如果有多个目录放置的话 可以使用追加方式添加其他的目录下的源文件,最好在做完这一步之后进行验证
两个函数的用途分别是 获取匹配的文件列表 和对匹配的字符串进行替换 将.cpp替换成.o,具体的详细内容可以百度,不赘述
第三步 写下如下语句
ALL: $(TARGET)
$(TARGET):$(OBJ)
$(CC) $(CFLA