Makefile近期学习心得

第一次写makefile心得是在九月,一转眼一个月过去了,回看一个月前我的心的看起来有些惨不忍睹,但学习嘛!就是这样。

先放近期写的makefile(用于stm32的编译、下载)

CC = arm-none-eabi-gcc
AS = arm-none-eabi-as
LD = arm-none-eabi-ld 
CFLAGS =-mthumb -mcpu=cortex-m4 -g -I /home/fxx/Desktop/Progect/Dev/ -DSTM32F40_41xxx
LDFLAGS = --static -L /usr/arm-none-eabi/lib/ -L /usr/lib/gcc/arm-none-eabi/11.2.0/
ASFLAGS = -mthumb -mcpu=cortex-m4
vpath %.c ./User
vpath %.c ./Dev
vpath %.h ./Dev
vpath %.o ./Build
TARGET =main
BUILD = BUILD
C_INCLUDE = stm32f4xx_rcc.c \
stm32f4xx_gpio.c \
system_stm32f4xx.c \
stm32f4xx_rcc.c \
delay.c \
main.c

OBJ_SOURCE = $(C_INCLUDE:%.c=%.o)
ASM_SOURCE = ./startup_stm32f40xx.s
LD_SOURCE = ./STM32F407IGHx_FLASH.ld
ASMOBJ_SOURCE =$(ASM_SOURCE:%.s=%.o)
all:$(OBJ_SOURCE) $(ASMOBJ_SOURCE) 
	$(LD) $(LDFLAGS) $^ -T $(LD_SOURCE) -o $(TARGET).elf
$(OBJ_SOURCE):%.o:%.c
	$(CC) $(CFLAGS) -c $< -o ./Build/$@
$(ASMOBJ_SOURCE):$(ASM_SOURCE)
	$(AS) $(ASFLAGS) -c $^ -o ./Build/$@
clean:
	rm -rf ./Build/*.o
	rm -rf ./*.elf
download:
	openocd -f /usr/share/openocd/scripts/interface/stlink.cfg -f /usr/share/openocd/scripts/target/stm32f4x.cfg  -c init -c halt -c "flash write_image erase /home/fxx/Desktop/Progect/main.elf" -c reset 

一、近期学习回顾

        先是学习了一下gcc编译器的参数,现在再使用makefile确实顺手了好多。

        再就是多写makefiel文件,多运行,多找错,多百度

        又系统的看了一下makefile教程(陈浩大佬编写的)。

二、现状

        现在再编写makefile虽说还是有些生涩,还需要不停的翻看手册,但也比第一此发的makefile好多了(至少可以顺利编译了)。

三、存在的问题

        再上面的makefile中,执行make后会出现一下报错

arm-none-eabi-ld  --static -L /usr/arm-none-eabi/lib/ -L /usr/lib/gcc/arm-none-eabi/11.2.0/ ./Build/stm32f4xx_rcc.o ./Build/stm32f4xx_gpio.o ./Build/system_stm32f4xx.o delay.o main.o ./Build/startup_stm32f40xx.o -T ./STM32F407IGHx_FLASH.ld -o main.elf
arm-none-eabi-ld: cannot find delay.o: 没有那个文件或目录
arm-none-eabi-ld: cannot find main.o: 没有那个文件或目录

再次执行make后链接才会成功。具体问题我猜测应该与“vpath %.o ./Build”和编译文件没有带路径有关,我会验证后下期发。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个人创造世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值