一个Makefile 文件实例模板

2020-06-30 14:27:44 浏览数 (1)

说明:

  1  在Linux下,一般使用GCC文件,比较头疼的问题,每次编写Makefile文件,比较麻烦,关键是经常忘记makefile语法;

       2  最近玩树莓派,借鉴了网上多篇博客,写了一个Makefile文件,具备小型项目的通用性,写下来,方便后续开发;

      3  废话不多说,直接上:

代码语言:javascript复制
all: DemoApp

#指定链接器
LD      = gcc
#指定编译器
CC      = gcc

OUT     = ./debug/

#指定头文件搜索路径
INC     = -I ./MCU_BSP_Lib/inc 
          -I ./MCU_BSP_Lib/src 
          -I ./MCU_BSP_Lib/src/BSP_Api_Crypto 
          -I ./MCU_BSP_Lib/src/BSP_Api_License 
          -I ./MCU_BSP_Lib/src/BSP_Protocol 
          -I ./MCU_BSP_Lib/src/BSP_Api_License 
          -I ./MCU_BSP_Lib/src/BSP_Api_Crypto 

#添加要连接的库文件
LINK    = -l bcm2835

#添加要编译的.c文件
SRCS    = ./main.c  
          ./MCU_BSP_Lib/src/BSP.c  
          ./MCU_BSP_Lib/src/BSP_Util.c  
          ./MCU_BSP_Lib/src/BSP_Protocol/BSP_IIC.c  
          ./MCU_BSP_Lib/src/BSP_Protocol/BSP_SPI.c  
          ./MCU_BSP_Lib/src/BSP_Protocol/BSP_Protocol.c 
          ./MCU_BSP_Lib/src/BSP_Protocol/BSP_Protocol_SGCC.c 
          ./MCU_BSP_Lib/src/BSP_Api_Crypto/Lib_Crypto_Impl.c 
          ./MCU_BSP_Lib/src/BSP_Api_Crypto/Lib_Crypto.c 
          ./MCU_BSP_Lib/src/BSP_Api_License/Lib_API_Boot.c 
          ./MCU_BSP_Lib/src/BSP_Api_License/Lib_API.c 
          #./MCU_BSP_Lib/src/BSP_Api_License/Lib_Update.c 

OBJS    = $(SRCS:.c=.o)

CFLAGS  = -g -Wall


#$(info SRCS: $(SRCS))
#$(info OBJS: $(OBJS))

#连接,生产目标程序DemoApp
DemoApp: $(OBJS)
    @echo link...
    $(LD)  -o $@  $^ -l bcm2835
    @echo done.


#编译
%.o:%.c                    
    $(CC) $(CFLAGS) $(INC)  -o $@ -c $<      

#clean
clean:
    rm $(OBJS)
    rm DemoApp

0 人点赞