NewGradDev
NewGradDev

Reputation: 1034

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

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:

[[email protected]]$ 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?

Upvotes: 1

Views: 37395

Answers (3)

user2472134
user2472134

Reputation: 63

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 :)

Upvotes: 1

Diego R. Alcantara
Diego R. Alcantara

Reputation: 114

Try doing

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

Compiledfilename is the name of the binary file.

Upvotes: 3

smani
smani

Reputation: 1973

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

Upvotes: 2

Related Questions