我有一个包含此代码的make文件:
all: main.o Etudiant.o
gcc -lobjc -o program main.o Etudiant.o
main.o:main.m Etudiant.h
gcc -c main.m
Etudiant.o:Etudiant.m Etudiant.h
gcc -c Etudiant.m
当我在shell命令中写这个时:
$make
我明白了:
make: **** No targets specified and no makefile found. Stop.
我该如何解决这个问题?
答案 0 :(得分:14)
线条开头的所有空格。这必须是标签。或者Make会发现一个非常模糊的错误。确保这些是标签,然后重试。
请参阅键盘左侧标有“tab”的按钮。删除空格并点击一次以插入制表符。
试试make all
。 IIRC(自从我不得不使用makefile后几年),大多数制作将默认为all
,但也许不是。{/ p>
扩展无关紧要。
“没有找到Makefile”意味着......好吧,Make甚至没有看到makefile。将Makefile.m重命名为Makefile的建议是正确的。同样,整个标签与空白的东西肯定是相关的。
答案 1 :(得分:4)
并且没有找到makefile
如果只输入make
没有参数或make all
,make
将在当前目录中查找名为Makefile
的文件。如果它不在那里,你会得到你看到的错误。 make
不会查找Makefile
的子目录,也不会接受名为Makefile.m
的文件。
答案 2 :(得分:0)
回复:
$ Make
Make: * 未指定目标且未找到makefile。停止。
我刚刚遇到这个错误,发现Makefile扩展名(无)已经转移到了.bat的某个地方。
答案 3 :(得分:0)
只是花了几个疯狂的令人沮丧的时刻与这个错误。我的错误不是那么微妙:我将makefile命名为MakeFile而不是Makefile,所以即使使用-f Makefile命令(强制makefile名称)仍然导致not-found,因为它是MakeFile,而不是Makefile。