我在 linux 中制作 makefile 时出错。这是我的代码:
CC = gcc
CFLAGS = -Wall -m32 -g -fno-stack-protector -z execstack -O0
SHELL_SOURCES = Shell.c
SHELL = Shell
.PHONY: all target1 clean
all: target1
target1: $(SHELL)
$(SHELL): $(SHELL_SOURCES)
$(CC) $(CFLAGS) $^ -o $@
clean:
rm -rf $(SHELL)
我得到的错误是:
gcc -Wall -m32 -g -fno-stack-protector -z execstack -O0 Shell.c -o Shell
make: Shell: Command not found
Makefile:16: recipe for target 'Shell' failed
make: *** [Shell] Error 127
最佳答案
您不能将 SHELL
用作 Makefile 中的变量,它用于了解您的 Makefile 中将使用什么 shell(/bin/sh、/bin/bash 等)。
CC = gcc
CFLAGS = -Wall -m32 -g -fno-stack-protector -z execstack -O0
EXE_SOURCES = Shell.c
EXE = Shell
.PHONY: all target1 clean
all: target1
target1: $(EXE)
$(EXE): $(EXE_SOURCES)
$(CC) $(CFLAGS) $^ -o $@
clean:
rm -rf $(EXE)
关于linux - C linux 中的 Makefile 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41346049/