Makefile工程创建


前言

第一次记录
深入浅出Makefile

一、Makefile是什么?

Makefile里面就是一堆shell命令的集合,一旦编写好 Makefile 文件,只需要一个 make 命令,整个工程就开始自动编译,不再需要手动执行 GCC 命令。

二、Makefile书写

1.第一步

一般情况下一个工程会在总文件夹下,共创建四个子文件夹,分别是 bin文件:include 文件:obj 文件: src文件

一个项目主要会编写三个Makefile,一个在obj文件夹中,一个在src文件夹中,一个是总控Makefile


总控Makefile:

1,ADD:=Myfile
2,CC:= gcc
3,CFLAGS:=-c
4,OBJS:=GCC.o ino.o pMaxAge.o  swap.o

5,export CC CFLAGS OBJS ADD

6,ALL:
	make -C src
	make -C obj

7.PHONY :clean
8,   clean:
	$(RM) bin/*
	$(RM) obj/*.o

第4行可替换成:自己所有obj文件夹中生成的 .o后缀文件

obj文件夹中Makefile

ALL:$(ADD)
	mv $(ADD) ../bin
$(ADD):$(OBJS)
	$(CC) $^ -o $@

src文件夹中Makefile

  1 ALL:$(OBJS)
  2         mv $^ ../obj
  3 GCC.o:GCC.c
  4         $(CC) $(CFLAGS) $< -o $@
  5 ino.o:ino.c
  6         $(CC) $(CFLAGS) $< -o $@
  7 pMaxAge.o:pMaxAge.c
  8         $(CC) $(CFLAGS) $< -o $@
  9 swap.o:swap.c
 10         $(CC) $(CFLAGS) $< -o $@

第一次在博客书写文章,还情各位手下留情!!!
创建一个stm32 makefile工程,可以按照以下步骤进行操作: 1. 确定芯片型号:选择使用的stm32系列芯片型号,例如stm32f103c8t6。 2. 准备开发环境:安装好交叉编译工具链和stlink调试工具。 3. 创建工程目录:在电脑上创建一个工程目录,例如~/stm32_project。 4. 创建makefile文件:在工程目录下创建一个makefile文件,例如~/stm32_project/makefile。 5. 编写makefile文件:根据芯片型号和开发需求,编写makefile文件,例如: ```makefile # makefile文件 # 编译器和链接器 CC = arm-none-eabi-gcc LD = arm-none-eabi-ld # 编译选项 CFLAGS = -mcpu=cortex-m3 -mthumb -Wall -g -O0 LDFLAGS = -T stm32.ld # 源文件和目标文件 SRC = main.c stm32_startup.c OBJ = $(SRC:.c=.o) # 目标文件名 TARGET = stm32_project # 编译规则 all: $(TARGET).bin $(TARGET).elf: $(OBJ) $(LD) $(LDFLAGS) -o $@ $^ $(TARGET).bin: $(TARGET).elf arm-none-eabi-objcopy -O binary $^ $@ %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< clean: rm -f $(OBJ) $(TARGET).elf $(TARGET).bin ``` 6. 编写应用程序:在工程目录下编写应用程序,例如~/stm32_project/main.c。 7. 编译应用程序:在终端中进入工程目录,执行make命令编译应用程序,例如: ```shell cd ~/stm32_project make ``` 8. 烧录程序:使用stlink调试工具烧录程序到stm32芯片中,例如: ```shell st-flash write stm32_project.bin 0x8000000 ``` 以上就是创建一个stm32 makefile工程的基本步骤。需要注意的是,具体的makefile文件内容和编译选项可能需要根据具体的开发需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值