关闭

一点一点学写Makefile(2)-自动搜所当前目录下的所有源文件

268人阅读 评论(0) 收藏 举报
分类:

上个博客我们使用的是笨方法添加源文件,本次我要实现的是遍历文件夹来获得所有的cpp文件


//makefile


CROSS = 
CC = $(CROSS)gcc
CXX = $(CROSS)g++
DEBUG = -g -O2
CFLAGS = $(DEBUG) -Wall -c
RM = rm -rf

SRCS = $(wildcard ./*.cpp)
OBJS = $(patsubst %.cpp, %.o, $(SRCS))

VERSION = 1.0.0.0
TARGET = test.$(VERSION)

$(TARGET) : $(OBJS)
	$(CXX) $^ -o $@

$(OBJS):%.o : %.cpp
	$(CXX) $(CFLAGS) $< -o $@


clean:
	$(RM) $(TARGET) *.o




第十一行功能:自动搜索指定目录下的所有cpp文件,如果没有指定,默认是当前目录,指定方法 - SRCS = $(wildcard ./src/*.cpp)

第十二行功能:通过cpp文件获得与之同名的*.o类型的文件

第二十行功能:将*.o文件和*.cpp文件想对应起来(这里会默认看成一个循环,即一个*.o和一个*.cpp文件均对应,直到所有的cpp文件和*.o文件都编译完成)

第二十四行,因为生成的目标文件包含版本信息,因此文件名不确定,建议使用$(TARGET)的形式,这是引用一个变量,在第十五行已有定义


下一节,我将会给大家讲,如何添加第三方库和第三方库所使用的头文件

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12777次
    • 积分:298
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:0篇
    • 译文:0篇
    • 评论:6条
    最新评论