我对Assembler进行了一些更改(包括底层硬件也支持的新指令),我想在code_asm文件中使用它。问题是,我目前使用的Makefile使用C编译器来编译code_asm文件。 我想做的是确保文件code_asm1和code_asm2运行 在生成的目标文件与应用程序的其余部分链接之前,修改后的汇编程序。我尝试过一些东西,但是我没有成功,因此如果有一些具有Makefile经验的人可以很快帮助我,那就太棒了。
CC = /mycom/bin/sparc-elf-gcc
AS = /myass/bin/sparc-elf-as
CFLAGS = -O2 -Wall -g
APP = test_V3
COBJ = file1.o \
file2.o \
file3.o
ASMOBJ_V3 = code_asm1.o \
code_asm2.o
all: $(APP)
# produce application
test_V3: $(ASMOBJ_V3) $(COBJ) Makefile
$(CC) $(EXTRAFLAGS) -o $@ $(COBJ) $(ASMOBJ_V3)
非常感谢, 克里斯
答案 0 :(得分:1)
您需要为汇编程序源指定依赖项,例如
code_asm1.o: code_asm1.asm
$(AS) -o $@ $<
(假设你的汇编源有一个.asm
后缀 - 如果它是.S
则适当改变
答案 1 :(得分:0)
您需要覆盖标准规则以创建.o文件:
%.o : %.c
$(CC) $(CFLAGS) -o $@ $<
只需定义自己的规则即可构建基于asm.c文件的asm.o文件,以替换上述标准规则。