我正在尝试创建一个新的C程序,但我无法编译程序。这是因为我的makefile似乎错了。我一直得到“没有规则让目标'全部'”和“没有规则让目标'干净'”。以下是我到目前为止的情况:
主程序:
#include <stdio.h>
Sleepy() {
main (); {
printf("Hello world");
}
}
标题(虽然我还没有做任何事情):
#ifndef SLEEPY_H_
#define SLEEPY_H_
#endif /* SLEEPY_H_ */
Makefile:
CC = gcc
CFLAGS = -c
Sleepy.o: Sleepy.c Sleepy.h
$(CC) $(CFLAGS) Sleepy.c
Sleepy: Sleepy.o
$(CC) -o Sleepy.exe Sleepy.o
all: Sleepy
clean:
rm -rf *.0 a.out
make = all
我一直在阅读各种教程,但我似乎无法让它工作。有人会帮我这个吗?
答案 0 :(得分:1)
要实现编辑,需要进行以下更改。
<强> Sleepy.c 强>
#include <stdio.h>
int main (void) {
printf("Hello world");
}
<强>生成文件强>
CC = gcc
CFLAGS = -c
all: Sleepy
Sleepy.o: Sleepy.c Sleepy.h
$(CC) $(CFLAGS) Sleepy.c
Sleepy.exe: Sleepy.o
$(CC) -o Sleepy.exe Sleepy.o
clean:
rm -rf *.o Sleepy.exe
请注意clean
Makefile
规则的更改。您必须删除Sleepy.exe
注意: Sleepy.o
和Sleepy
的规则应该由TAB
而不是空格抵消。否则,您将遇到此错误:makefile:5: *** missing separator. Stop
答案 1 :(得分:0)
尝试这个,
All: sleepy
sleepy: sleepy.c sleepy.o sleepy.h
gcc sleepy.c -o sleepy
clean:
rm -f *.o