在C中创建文件会产生致命错误

问题描述 投票:1回答:1

我想在C中创建一个makefile,但我遇到了一些问题。我有我的主.c,一个.c保存函数实现,一个.h保存函数声明。当我尝试运行makefile时,我收到致命错误。这是我的makefile:

INCL   = prog.h
SRC    = prog.c prog_fun.c
OBJ    = $(SRC:.c=.o)
EXE    = prog


CC = gcc  
CFLAGS  = -c
RM      = rm -rf

all: prog

prog: prog.o prog_fun.o
    gcc -o prog prog.o prog_fun.o 

prog.o: prog.c 
    gcc -c prog.c

prog_fun.o: prog_fun.c prog.h
    gcc -c prog.c

clean:
    $(RM) $(OBJ) $(EXE)

我得到的错误是这样的:

gcc -c prog.c
prog.c:11:19: fatal error: prog.h: No such file or directory
compilation terminated.
Makefile:17: recipe for target 'prog.o' failed
make: *** [prog.o] Error 1

有人可以帮我这个吗?

c makefile
1个回答
1
投票

你想用这个做什么

prog_fun.o: prog_fun.c header.h

应该只是

prog_fun.o: prog_fun.c 

将您的make文件修改为

xyz@xyz-PC:~$ vi makefile 
INCL   = header.h
SRC    = prog.c prog_fun.c
OBJ    = $(SRC:.c=.o)
EXE    = prog


CC = gcc
CFLAGS  = -c
RM      = rm -rf

all: prog
prog: prog.o prog_fun.o
        gcc -o prog prog.o prog_fun.o 
prog.o: prog.c
        gcc -c prog.c header.h
prog_fun.o: prog_fun.c
        gcc -c prog_fun.c header.h

clean:
        $(RM) $(OBJ) $(EXE)

接下来运行它

xxyz@xyz-PC:~$ make
gcc -c prog.c header.h
gcc -c prog_fun.c header.h
gcc -o prog prog.o prog_fun.o 

我希望它现在可以工作并确保缩进是正确的(不是手动空格,它应该是tab键)