Проблемы с Makefile: g ++: фатальная ошибка: нет входных файлов

Что я уже сделал:

Я просматривал другие потоки StackOverflow с похожими проблемами, но ни один из них, похоже, не подходит для моего конкретного случая. Я также дважды проверил, чтобы убедиться, что правильные файлы находятся в правильных местах (папках) и что все также названо правильно.

Это ошибка, которую я получаю:

[[email protected]]$ make
g++ -Wall -O2 -ansi -pedantic -o dog.cpp
g++: fatal error: no input files
compilation terminated.
make: *** [mscp.o] Error 4

Вот этот make-файл:

CC = g++
CFLAGS = -Wall -O2 -ansi -pedantic -Werror

TARGETS = dog dog.o collar.o

dog: dog.o collar.o
$(CC) $(CFLAGS) -o dog collar.o dog.o

dog.o: dog.cpp collar.h
$(CC) $(CFLAGS) -o dog.cpp

collar.o: collar.cpp collar.h
$(CC) $(CFLAGS) -o collar.cpp

clean:
-rm -f ${TARGETS}

Вот файлы (все они находятся в одном каталоге), на которые ссылается make-файл:

-collar.cpp
-collar.h
-makefile
-dog.cpp

Что я делаю неправильно?

1

Решение

это

dog.o: dog.cpp collar.h
$(CC) $(CFLAGS) -o dog.cpp

collar.o: collar.cpp collar.h
$(CC) $(CFLAGS) -o collar.cpp

должен прочесть

dog.o: dog.cpp collar.h
$(CC) $(CFLAGS) -c dog.cpp

collar.o: collar.cpp collar.h
$(CC) $(CFLAGS) -c collar.cpp
2

Другие решения

Попробуй сделать

   $(CC) $(CFLAGS) - c collar.cpp -o compiledfilename

Compiledfilename — это имя двоичного файла.

2

Я знаю, что уже слишком поздно, чтобы ответить. Но это может помочь другим. Я была такая же проблема. И я исправил это, заменив .час файл с .HPP файл. Это сработало 🙂

0
По вопросам рекламы [email protected]