Makefile issues: g++: fatal error: no input files

2019-03-01 20:32发布

What I've already done:

I've looked through other StackOverflow threads with similar issues, but none of them seem to apply to my specific case. I've also double checked to makes sure that the correct files are in the correct locations (folders) and that everything is named properly as well.

This is the error I'm receiving:

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

Here's the makefile in question:

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}

Here are the files (they're all in the same directory) that are being referenced by the makefile:

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

What am I doing wrong?

3条回答
唯我独甜
2楼-- · 2019-03-01 21:18

I know it is too late to answer. But this might help some else. I had the same issue. And I fixed it by replacing .h file with .hpp file. It worked :)

查看更多
Ridiculous、
3楼-- · 2019-03-01 21:22

Try doing

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

Compiledfilename is the name of the binary file.

查看更多
我命由我不由天
4楼-- · 2019-03-01 21:25

This

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

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

should read

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

collar.o: collar.cpp collar.h
    $(CC) $(CFLAGS) -c collar.cpp
查看更多
登录 后发表回答