首页 > 代码库 > 一点一点学写Makefile(2)-自动搜所当前目录下的所有源文件
一点一点学写Makefile(2)-自动搜所当前目录下的所有源文件
上个博客我们使用的是笨方法添加源文件,本次我要实现的是遍历文件夹来获得所有的cpp文件
[plain] view plain copy
- //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)的形式,这是引用一个变量,在第十五行已有定义
下一节,我将会给大家讲,如何添加第三方库和第三方库所使用的头文件
一点一点学写Makefile(2)-自动搜所当前目录下的所有源文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。