i wrting простой make-файл для файлов C++, но вот проблема, которую я не понимаю. У меня есть 2 папкиC++ Makefile% .c works,% .cpp not?
/SRC для файлов .cpp
- main.cpp
- проверка каст
/включают .hpp файлы
- check.hpp
Мои Makefiles выглядит следующим образом
LIBS = -lsfml-graphics -lsfml-window -lsfml-system
CC = g++
VPATH = src include
CPPFLAGS = -I include
### Files ###
OBJ = main.o check.o
### Rules ###
all: sfml-app
sfml-app: $(OBJ)
$(CC) -o sfml-app $(OBJ) $(LIBS)
%.o: %.c
$(CC) -c $<
clean:
rm -rf *o $(OBJ)
если я использовать мой Makefile любит это, все работает отлично. Но если я изменить % .o:% .c на % .o:% .cpp он сказал
src/main.cpp:2:21: critical error: check.hpp: file or folder not found
это неправильно писать .cpp вместо .c даже это проект с ++ ? Это немного смутило меня. Почему .c работает finde и .cpp нет.
благодарит за вашу помощь :)!
'CC = g ++' - *** WRONG *** –
@ H2CO3 На самом деле вы * нуждаетесь в этом правиле, если не перегружаете автоматическое правило для связывания (не нужно!), Поскольку 'make' использует' $ (CC) 'для привязки, * not *' $ (LD) ', по крайней мере, на моей системе (и насколько я знаю, это довольно нормально). –
Вы получаете ошибку компиляции. Отправьте файл 'main.cpp'. Существует ли 'main.hpp' в правильной папке? –