Makefile C with SDL2

时间:2016-01-25 13:04:39

标签: c makefile sdl ubuntu-15.04

我使用SDL2和nasm给了用C编写的程序。我对makefile有疑问:" ***也不制定目标' ../ 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

1 个答案:

答案 0 :(得分:3)

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。该文件不存在,并且没有为此类目标定义规则。因此,依赖失败。

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