Makefile C с SDL2

Мне дали программу, написанную на C с использованием SDL2 и nasm. У меня проблема с make-файлом: "*** Ни одно правило для создания цели"../home/amellana/Desktop/project/main.c', необходимое для "main.o"".

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

person amellana    schedule 25.01.2016    source источник


Ответы (1)


Общий синтаксис для 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. Файл не существует, и для такой цели не определено правило. Итак, зависимость не работает.

Вероятно, вы ошиблись в имени файла или указали неверный путь.

person rubikonx9    schedule 25.01.2016