|
发表于 2013-2-2 22:36:52
|
显示全部楼层
yklstudent 发表于 2013-2-2 22:16 ![](static/image/common/back.gif)
进入5楼的界面不难 我就是不懂在这样的界面下怎么编译一个工程呢(含多个文件)????
你说的不是很了 ...
在UNIX等等下管理工程是用Makefile管理的.Makefile里包含了要编译文件啊啊,编译器啊,要链接的库文件啊,包含头文件啊.
然后Make这个程序会自动寻找到Makefile这个文件,然后解析这个文件的内容,然后调用编译器编译.贴个STM32F3的makefile:- # put your *.o targets here, make should handle the rest!
- SRCS = main.c stm32f30x_it.c system_stm32f30x.c 12864.c
- # all the files will be generated with this name (main.elf, main.bin, main.hex, etc)
- PROJ_NAME=main
- # that's it, no need to change anything below this line!
- ###################################################
- export CC=arm-none-eabi-gcc
- export LD=arm-none-eabi-gcc
- export AR=arm-none-eabi-ar
- export AS=arm-none-eabi-as
- export OBJCOPY=arm-none-eabi-objcopy
- export RANLIB=arm-none-eabi-ranlib
- export LDFLAGS=-Wl,-T,stm32f30_flash.ld
- LDFLAGS += -L../FWLib -lstm32f3
- LDFLAGS += -lfastmathfunc
- #export CFLAGS=-g -O1 -c -nostdlib -fno-common
- #CFLAGS += -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mthumb-interwork -mlittle-endian -mfpu=fpv4-sp-d16
- #CFLAGS += -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DMANGUSTA_DISCOVERY -DHSE_VALUE=8000000
- export CFLAGS=-g -O2
- CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m4 -mthumb-interwork -Wall
- CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
- CFLAGS += -ffreestanding -nostdlib
- CFLAGS += -D STM32F30X -DARM_MATH_CM4
- CFLAGS += -I ./
- #CWD = $(shell pwd)
- #export ROOT=$(CWD)
- #export LIB_ROOT=$(ROOT)/lib
- ###################################################
- vpath %.c ../FWLib/src
- CFLAGS += -I../FWLib/inc -I../CMSIS/Include
- CFLAGS += -I../CMSIS/Device/ST/STM32F30x/Include
- SRCS += ../STARTCODE/startup_stm32f30x.s # add startup file to build
- OBJS = $(SRCS:.c=.o)
- ###################################################
- .PHONY: proj
- all: proj
- lib:
- $(MAKE) -C lib
- proj: $(PROJ_NAME).elf
- $(PROJ_NAME).elf: $(SRCS)
- $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
- # $(LD) $(LDFLAGS) --verbose -o $@ $(OBJS) -lstm32f4
- $(OBJCOPY) -O ihex $(PROJ_NAME).elf $(PROJ_NAME).hex
- $(OBJCOPY) -O binary $(PROJ_NAME).elf $(PROJ_NAME).bin
- clean:
- rm -f *.o
- rm -f $(PROJ_NAME).elf
- rm -f $(PROJ_NAME).hex
- rm -f $(PROJ_NAME).bin
复制代码 如果你用过GCC的话,应该看起来没什么压力吧.
SRCS是要编译的C文件
CC 是C编译器
AS 是汇编器
LD 是链接器
CFLAGS 是编译选项
LDFLAGS 是链接选项
最难的是% 啊 @啊 代表的是什么 |
|