一个简单的MAKEFILE示例

25 篇文章 4 订阅

 

最近在自己编写自己的测试项目时觉得每次都是用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)
~                                                                                                                                                                         
~                                     

 

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值