无法让我的C程序编译。 Makefile错误

时间:2013-03-24 00:53:48

标签: c makefile

我正在尝试创建一个新的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

我一直在阅读各种教程,但我似乎无法让它工作。有人会帮我这个吗?

2 个答案:

答案 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.oSleepy的规则应该由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