makefile ------ 编译驱动的 makefile 和编译应用的 makefile 的对比

驱动的makefile

obj-m:=HelloWorld.o
KDIR:=/home/god/Desktop/raspberry/linux    # path of kernel file
PWD:=$(shell pwd)  # path of current file
all:     
   $(MAKE)
-C $(KDIR) M=$(PWD) modules @rm -rf *.mod.* @rm -rf *.o @rm -rf Module.* @rm -rf modules.* clean: $(MAKE) -C $(KDIR) M=$(PWD) clean

变量 obj-m、M 是内核文件夹下 makefile 要用到的变量

make -C 表示会先进入路径 KDIR 下,然后生成目标 modules

驱动的 makefile 没有使用编译器

 

应用的makefile

EXEC = can_test
OBJS = can_test.o
SRC  = can_test.c

CC = arm-none-linux-gnueabi-gcc
CFLAGS += 
LDFLAGS += 
all:$(EXEC)

$(EXEC):$(OBJS)
    $(CC) $(LDFLAGS) -o $@ $(OBJS) 

%.o:%.c
    $(CC) $(CFLAGS) -c $< -o $@ 

clean:
    @rm -vf $(EXEC) *.o

直接调用编译器

 

posted @ 2021-05-26 15:53  流水灯  阅读(257)  评论(0)    收藏  举报