## TARGET: generate hello
## $^ : 所有依赖
## $@ : 目标文件
## $< : 第一个依赖
## g++ -g -o main main.cpp
INCLUDE_FILE := ./%.h
SRC_FILES := $(wildcard *.cpp)
OBJ_FILES=$(SRC_FILES:%.cpp=./.objs/%.o)
TARGET := hello
CFLAGS=-I./ -Wall -Werror -fPIC -ggdb
LIB := -L../lib/ -lztxmath -L../lib/ -lztxshow
$(TARGET) : $(SRC_FILES) $(OBJ_FILES)
$(GXX) -g -o $(TARGET) $(OBJ_FILES) $(LIB)
$(DEP_FILES): ./%.d : ./%.cpp
@echo "generate dependence $@"
@printf "../" > $@.tmp
@$(GXX) -MM $< $(CFLAGS) >> $@.tmp 2> /dev/null
@mv $@.tmp $@
$(OBJ_FILES) : ./.objs/%.o : ./%.cpp
$(GXX) -o $@ -c $< $(CFLAGS)
clean:
-rm $(TARGET) $(OBJ_FILES)
## $^ : 所有依赖
## $@ : 目标文件
## $< : 第一个依赖
## g++ -g -o main main.cpp
## desc: 可以显示编译过程,最终生成可执行文件hello
GXX := g++INCLUDE_FILE := ./%.h
SRC_FILES := $(wildcard *.cpp)
OBJ_FILES=$(SRC_FILES:%.cpp=./.objs/%.o)
TARGET := hello
CFLAGS=-I./ -Wall -Werror -fPIC -ggdb
LIB := -L../lib/ -lztxmath -L../lib/ -lztxshow
$(TARGET) : $(SRC_FILES) $(OBJ_FILES)
$(GXX) -g -o $(TARGET) $(OBJ_FILES) $(LIB)
$(DEP_FILES): ./%.d : ./%.cpp
@echo "generate dependence $@"
@printf "../" > $@.tmp
@$(GXX) -MM $< $(CFLAGS) >> $@.tmp 2> /dev/null
@mv $@.tmp $@
$(OBJ_FILES) : ./.objs/%.o : ./%.cpp
$(GXX) -o $@ -c $< $(CFLAGS)
clean:
-rm $(TARGET) $(OBJ_FILES)
sinclude $(DEP_FILES)
######################## makefile end ###########################
生成的可执行文件的结果如下:
jackiexiao@debian:/opt/jackiexiao/makefile/src/hello$ ./hello
hello.world
this is a int type, value:3
this is a string type, value:hellowow_youare_great