带有 SDL2 的 Makefile C

Makefile C with SDL2

我得到了使用 SDL2 和 nasm 用 C 语言编写的程序。我的 makefile 有问题:“*** Nor rule to make target'../home/amellana/Desktop/project/main.c', 'main.o' 需要” 有人知道要在我的 makefile 中更改什么吗?

CC=gcc
CFLAGS=-Wall -Wextra

ASM=nasm
AFLAGS=-f elf64

all: myfunc mytest

main.o: ../home/amellana/Desktop/project/main.c  
    $(CC) $(CFLAGS) -c ../home/amellana/Desktop/project/main.c
mytest.o: ../home/amellana/Desktop/project/mytest.c
$(CC) $(CFLAGS) -c ../home/amellana/Desktop/project/mytest.c
program.o: program.nasm
    $(ASM) $(AFLAGS) program.nasm
myfunc: main.o myfunc.o
    $(CC) $(CFLAGS) main.o program.o -lSDL2 -o myfunc
mytest: mytest.o program.o
    $(CC) $(CFLAGS) mytest.o program.o -o mytest
clean:
    rm -f *.o
    rm -f myfunc
    rm -f mytest

Makefile 规则的一般语法是:

<target>: <dependencies>
    <recipe>

在你的情况下,这部分:

main.o: ../home/amellana/Desktop/ARKO/main.c
    $(CC) $(CFLAGS) -c ../home/amellana/Desktop/project/main.c

表示为了创建目标 main.o,必须首先构建依赖项 ../home/amellana/Desktop/ARKO/main.c。该文件不存在,并且没有为此类目标定义的规则。所以,依赖失败了。

您可能拼错了文件名,或者路径不正确。