新建一個最小的Makefile工程(C語言)

uav360發表於2020-12-24

新建一個原始檔main.c

#include<stdio.h>

int main()
{
    printf("Welcome to Makefile and ld.script project ! \r\n");
    return 0;
}

新建一個連結指令碼檔案ld.script

ld -verbose > ld.script

注意:需要將ld.script檔案中的頭部和尾部非法內容去掉。

新建一個Makefile檔案

TARGET = main.bin

BUILD = main.elf

OBJS = main.o

CROSS_COMPILE = 

CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)gcc
OBJCOPY = $(CROSS_COMPILE)objcopy

CFLAGS = -Wall -g 
LDFLAGS = -Wall -g -T ld.script

all:$(TARGET)

$(TARGET):$(BUILD)
	$(OBJCOPY) -O binary $^ $@

$(BUILD):$(OBJS)
	$(LD) $(LDFLAGS) -o $@ $^

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

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

clean:
	rm -f $(TARGET) $(BUILD) *.o

工程的使用

編譯工程:

make
./main.elf

清除工程

make clean

相關文章