Я хочу написать make-файл для компиляции моих кодов C ++.
Дерево моих файлов следующее:
.
├── include
│ └── Sort.h
├── lib
│ └── Sort.cpp
└── src
├── main.cpp
├── makefile
└── obj
А это мой make-файл:
cc=g++
CFLAGS= -c -w
.PHONY: all clean
all: main
main: main.o Sort.o
$(cc) main.o Sort.o -o Sort -l m
Sort.o: Sort.cpp ../lib
$(cc) $(CFLAGS) main.cpp
main.o: main.cpp ../include/Sort.h
$(cc) $(CFLAGS) main.cpp
clean:
rm *.o main
Но я выдаю эту ошибку после запуска make
в терминале:
g++ -c -w main.cpp
main.cpp:1:10: fatal error: Sort.h: No such file or directory
1 | #include <Sort.h>
| ^~~~~~~~
compilation terminated.
make: *** [makefile:16: main.o] Error 1
Вы можете помочь мне отредактировать мои make-файл?
Спасибо за @steeldriver комментарий.
Это правильный makefile:
cc=g++
CFLAGS= -c -w -I../include
.PHONY: all clean
all: main
main: main.o Sort.o
$(cc) main.o Sort.o -o Sort -l m
Sort.o: ../lib/Sort.cpp ../include/Sort.h
$(cc) $(CFLAGS) ../lib/Sort.cpp
main.o: main.cpp ../include/Sort.h Sort.o
$(cc) $(CFLAGS) main.cpp
clean:
rm *.o main