一个能自动搜索源文件并自动推导的Makefile
生活随笔
收集整理的這篇文章主要介紹了
一个能自动搜索源文件并自动推导的Makefile
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
From:?http://blog.csdn.net/yuliying/article/details/49635485
這份makefile可以將當前makefile所在文件夾以及所有子文件夾中的cpp文件打包成靜態庫和動態庫.
稍作修改目標也可以用來編譯為可執行文件。
自動生成所有依賴關系,修改任何文件都可以觸發重新編譯相應依賴的文件。
在Ubuntu 和 OSX 系統測試通過。
?以下為我自己整理過的Makefile
AllDirs := $(shell ls -R | grep '^\./.*:$$' | awk '{gsub(":","");print}') . Sources := $(foreach n,$(AllDirs) , $(wildcard $(n)/*.cpp)) Objs := $(patsubst %.cpp,%.o, $(Sources)) Deps := $(patsubst %.cpp,%.d, $(Sources))CC = gcc CXX = g++ RM = rm -f CXXFLAGS = -g -O2 -fPIC -Wall #CPPFLAGS = $(foreach n,$(AllDirs), -I$(n)) CPPFLAGS = -Iinclude LDFLAGS = TARGET = ddzAppall: $(TARGET)$(TARGET): $(Objs)$(CXX) -g -o $@ $^ $(LDFLAGS)%.d : %.c$(CC) -MT"$(<:.cpp=.o) $@" -MM $(CXXFLAGS) $(CPPFLAGS) $< > $@%.d : %.cpp$(CXX) -MT"$(<:.cpp=.o) $@" -MM $(CXXFLAGS) $(CPPFLAGS) $< > $@sinclude $(Deps).PHONY : cleanclean: $(RM) $(Objs) $(Deps) $(TARGET)
總結
以上是生活随笔為你收集整理的一个能自动搜索源文件并自动推导的Makefile的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序——简单的售后服务单
- 下一篇: IP地址转化为数字,charindex