對不起,重複,但我找不到解決方案。 以下是我希望Makefile完成的命令序列。Makefile自動編譯,彙編和鏈接目錄中的許多文件
gcc-elf-gcc -S -combine loadStoreByte.c string.c lib_uart.c bubble_uart.c -o bubble_uart.s
gcc-elf-as -o startup.o startup.s;
gcc-elf-as -o handler.o handler.s;
gcc-elf-as -o bubble_uart.o bubble_uart.s;
gcc-elf-ld -o bubble_uart -T browtb.x bubble_uart.o startup.o handler.o;
也就是說,我想所有的C文件編譯成一個單一的S檔,然後assemeble所有s文件轉換成相應的目標文件和鏈接所有對象文件爲一個可執行文件。
我試過下面的makefile。單個目標可以正常工作,但無法使用「全部製造」同時運行所有目標。 請指導如何解決它。
CC = brownie32-elf-gcc
AS = brownie32-elf-as
LK = brownie32-elf-ld
SFILE = $(wildcard *.s)
OFILE = $(patsubst %.s,%,$(SFILE))
CFILE = $(wildcard *.c)
OBJ = $(wildcard *.o)
APP = bubble_uart
all: compile assemble link
link: $(OBJ)
$(LK) -o $(APP) -T browtb.x $^
assemble: $(OFILE)
%: %.s compile
$(AS) -o [email protected] $<
compile: $(CFILE)
$(CC) -S -combine $^ -o $(APP).s
clean:
rm -f $(OBJ) $(APP) $(APP).s *.o
感謝
我糾正你的問題,我覺得它有一個錯誤。 –