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

时间:2017-12-17 17:04:26

标签: c makefile

我正在尝试用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

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分: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键)