我正在 OS X 上编写一个 makefile,遇到了问题。我已经按照规定做了一切(我认为),但只有部分工作正常。当我尝试:
make file1
或者:
make file2
一切似乎都很好,但当我尝试时:
make all
或者:
make clean
I get the typical :
*** No rule to make target
这里是代码,希望你能发现问题所在:
CC = gcc
CFLAGS=-Wall
FILES=file1 file2
all: $(FILES)
file1: file1.c
$(CC) $(CFLAGS) file1.c -o file1
file2: file2.c
$(CC) $(CFLAGS) file2.c -o file2
clean:
$(RM) $(FILES)
欢呼!
make file1
在没有使用任何 makefile 的情况下工作,并提供默认规则来进行编译(可能在编译时不使用-Wall
选项)。你创建的makefile的名称是什么? - Jonathan Leffler-Wall
(我刚刚注意到了)。 - TanguyHls m* | od -c
。看看字母是不是你期望的,并且名字的末尾没有空格或其他不正常的字符。但是,"no-Wall
" 的观察实际上确认了问题在于makefile
的名字,尽管目前还不清楚为什么它不起作用。你可以尝试使用make -f makefile all
,看看是否会有任何区别。 - Jonathan Lefflermakefile
,它可以顺利运行。你关于名称问题的观点肯定是正确的@JonathanLeffler,并感谢你提供的所有有用提示(以防再次发生,但不是名称问题)。 - TanguyH