上個博客我們使用的是笨方法添加源文件,本次我要實現的是遍歷文件夾來獲得所有的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)的形式,這是引用一個變量,在第十五行已有定義
下一節,我將會給大家講,如何添加第三方庫和第三方庫所使用的頭文件