一點一點學寫Makefile(2)-自動搜所當前目錄下的所有源文件


上個博客我們使用的是笨方法添加源文件,本次我要實現的是遍歷文件夾來獲得所有的cpp文件


[plain] view plain copy
  1. //makefile  
  2.   
  3.   
  4. CROSS =   
  5. CC = $(CROSS)gcc  
  6. CXX = $(CROSS)g++  
  7. DEBUG = -g -O2  
  8. CFLAGS = $(DEBUG) -Wall -c  
  9. RM = rm -rf  
  10.   
  11. SRCS = $(wildcard ./*.cpp)  
  12. OBJS = $(patsubst %.cpp, %.o, $(SRCS))  
  13.   
  14. VERSION = 1.0.0.0  
  15. TARGET = test.$(VERSION)  
  16.   
  17. $(TARGET) : $(OBJS)  
  18.     $(CXX) $^ -o $@  
  19.   
  20. $(OBJS):%.o : %.cpp  
  21.     $(CXX) $(CFLAGS) $< -o $@  
  22.   
  23.   
  24. clean:  
  25.     $(RM) $(TARGET) *.o  


第十一行功能:自動搜索指定目錄下的所有cpp文件,如果沒有指定,默認是當前目錄,指定方法 - SRCS = $(wildcard ./src/*.cpp)

第十二行功能:通過cpp文件獲得與之同名的*.o類型的文件

第二十行功能:將*.o文件和*.cpp文件想對應起來(這里會默認看成一個循環,即一個*.o和一個*.cpp文件均對應,直到所有的cpp文件和*.o文件都編譯完成)

第二十四行,因為生成的目標文件包含版本信息,因此文件名不確定,建議使用$(TARGET)的形式,這是引用一個變量,在第十五行已有定義


下一節,我將會給大家講,如何添加第三方庫和第三方庫所使用的頭文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM