Makefile模板 平台为IMX6 arm-linux-gnueabihf-gcc交叉编译
首先工程目录下先新建inc obj src三个目录
main函数所在的.c文件放于根目录下,与Makefile放置于同一级目录
然后上代码
BIN = .
SRC = ./src
INC = ./inc
OBJ = ./obj
#提前所有源文件(即:*.c文件)和所有中间文件(即:*.o)
SOURCE = $(wildcard ${SRC}/*.c \
$(wildcard ./*.c) )
OBJECT = $(patsubst %.c,${OBJ}/%.o,$(notdir ${SOURCE}))
# main.c所在的.c文件 在此为zigbeeApp
TARGET = zigbeeApp
BIN_TARGET = $(BIN)/$(TARGET)
#CC中放置交叉编译工具名
CROSS =
CC = $(CROSS)arm-linux-gnueabihf-gcc
#CC = $(CROSS)arm-openwrt-linux-gcc
CFLAGS = -I$(INC) -g -O2 -lpthread -fexec-charset=GB2312
# 生成最后的可执行文件
$(BIN_TARGET):$(OBJECT)
$(CC) -o $@ $(OBJECT)
# 各文件单独编译
$(OBJ)/%.o :$(SRC)/%.c
$(CC) $(CFLAGS) -c $< -o $@
$(OBJ)/zigbeeApp.o: ./zigbeeApp.c
$(CC) $(CFLAGS) -o $@ -c zigbeeApp.c
.PHONY:clean
clean:
find $(OBJ) -name *.o -exec rm -rf {} \;
rm -rf $(BIN_TARGET)
需要修改的地方有
1. TARGET = zigbeeApp (zigbeeApp名称为生成可执行文件名)
2. CC = $(CROSS)arm-linux-gnueabihf-gcc(交叉编译工具名)
3. $(OBJ)/zigbeeApp.o: ./zigbeeApp.c
$(CC) $(CFLAGS) -o $@ -c zigbeeApp.c
(三个zigbeeApp对应修改,main函数所在.c文件名称)
保存,到工程文件根目录下执行make即可!