【发布时间】:2019-05-28 06:55:10
【问题描述】:
我有以下 Makefile:
SRC = $(wildcard *.s)
BIN = $(SRC:.s=)
all: $(BIN)
echo 4
当前目录中有一个汇编文件 (fizzbuzz.s)。当我执行make 命令时,它会运行
cc fizzbuzz.s -o fizzbuzz
我不明白为什么会这样?怎么了?
更新:
当我使用另一个 Makefile 时也会发生同样的情况:
.PHONY: clean all
AS = nasm
LNK = ld
SRC = $(wildcard *.s)
BIN := $(SRC:.s=)
all: $(BIN)
%: %.o
$(LNK) -melf_i386 $< -o $@
%.o: %.s
$(AS) -f elf $< -o $@
clean:
rm -f $(BIN)
【问题讨论】:
-
有内置的默认配方,比如使用
cc编译.s -
@Barmar,我该如何改变这种行为?
-
你想让它做什么?
-
您的第二个 makefile 将
nasm用于.asm文件,而不是.s文件。 -
Make gcc the default compiler of make 不是相当重复的,但肯定是相关的。