首页 > 解决方案 > Makefile 没有这样的文件或目录

问题描述

我正在尝试做一些简单的链表实践来熟悉C。我目前有以下makefile。

CC=gcc
CFLAGS=-Wall

app: linked_list.o app.c
    $(CC) $(CFLAGS) linked_list.o app.c -o app

node.o: node.h
    $(CC) $(CFLAGS) -c node.c

linked_list.o: linked_list.h
    $(CC) $(CFLAGS) -c linked_list.h -o app

当我运行它时,我得到这个: gcc: error: linked_list.o: No such file or directory

我尝试重新排序 node.o 和 linked_list.o,但没有任何效果。

标签: cmakefile

解决方案


您需要编译.c文件,而不是.h; 并摆脱-o app.

linked_list.o: linked_list.c linked_list.h
    $(CC) $(CFLAGS) -c linked_list.c

确保将.c.h文件都列为依赖项,包括这里和 with node.o

node.o: node.c node.h
    $(CC) $(CFLAGS) -c node.c

推荐阅读