一个简单的MAKEFILE示例

xiaoxiao2021-02-28  95

 

最近在自己编写自己的测试项目时觉得每次都是用G++命令去编译自己的项目还是有点麻烦,也是时候去学一学Makefile的写法了。

因此,针对自己的测试项目的特点(不太使用外部链接库),写了一个较为简单的MAKEFILE,也学到了不少makefile中的知识点

#目标文件名 TARGET_NAME=protectedFile

#目标文件类型(可执行,静态库,动态库) TARGET_PREFIX=

#源文件路径,库路径,头文件路径 SRC_DIR=./src

INC_DIR=-I./inc

OUT_PUT=./output

LIB_FILES=

LIB_PATH=

#最终的输出目标文件名 TARGET_FILE=$(OUT_PUT)/$(TARGET_NAME)$(TARGET_PREFIX)

#首先枚举所有cpp,生产obj列表 CPP_FILES=$(wildcard $(SRC_DIR)/*.cpp) OBJ_FILES=$(patsubst %.cpp, %.o ,$(CPP_FILES))

#生成入口

all:$(TARGET_NAME)     @echo "begin compile $(TARGET_NAME)"

$(TARGET_NAME):$(OBJ_FILES)     @echo "begin link object files $(OBJ_FILES)"

%.o:%.cpp     @echo "$< has been changed or $@ has been changed,need compile"     g++ -o $@ -c $< $(LIB_FILES) $(LIB_PATH) $(INC_DIR)

#产生目标文件 ifeq ($(TARGET_PREFIX),)     @echo "===============link executable file $@=========="     g++ $(OBJ_FILES) $(LIB_FILES) $(LIB_PATH) -o $(TARGET_FILE) endif

clean:     rm -rf $(TARGET_FILE)     rm -rf $(OBJ_FILES) ~                                                                                                                                                                          ~                                     

 

  

 

转载请注明原文地址: https://www.6miu.com/read-46884.html

最新回复(0)