##MakeFile
MAIN :=Examples/main.cpp#主文件目录
MAIN.o:=objs/main.o##目标文件目录
cpp_srcs :=$(shell find src -name "*.cpp")
cpp_objs :=$(patsubst src/%.cpp,objs/%.o,$(cpp_srcs))
#加头文件的编译选项
include_dirs :=/home/shenlan/Group/00.lsa/project/include
##每个路径要加一个-I的选项,是给头文件的 即从当前目录搜索头文件
I_options := $(include_dirs:%=-I%)##不能打空格
##编译也要加一些选项
compile_options := -g -w -O3 $(I_options)##编译也要加一些选项
$(MAIN.o) : $(MAIN)
@echo [INFO] : Compile $^ to $@
@mkdir -p $(dir $@)
@g++ -c $^ -o $@ $(compile_options)
##########编译
objs/%.o : src/%.cpp
@echo [INFO] : Compile $^ to $@
#建立obj文件夹
@mkdir -p $(dir $@)
##编译成二进制文件
@g++ -c $^ -o $@ $(compile_options)
##########链接所有.o后缀文件
#可执行文件依赖于
workspace/exec : $(cpp_objs) $(MAIN.o)
@echo [INFO]: Link $^ to $@
@mkdir -p $(dir $@)
@g++ $^ -o $@
########执行
run:workspace/exec
@./$<
#执行
clean:
@rm -rf objs workspace/exec
debug :
@echo $(cpp_srcs)
@echo $(cpp_objs)
@echo $(I_options)
@echo $(MAIN.o)
@echo $(compile_options)
.PHONY :debug run clean