Makefile issues - fatal error in reader

2019-02-25 18:42发布

问题:

I am having some issues with a makefile I am creating for a school project. I am compiling and assembling a C file and a SPARC assembly file (respectively) and linking them. I'm working in a Unix environment. Here is the makefile:

proj09.exe: proj09.driver.o proj09.support.o
<tab>gcc -Wall proj09.driver.o proj09.support.o -o proj09.exe

proj09.driver.o: proj09.driver.c /user/cse320/Projects/project09.support.h
<tab>gcc -Wall -c proj09.driver.c /user/cse320/Projects/project09.support.h

proj09.support.o: proj09.support.s
<tab>gcc -Wall proj09.support.s 

When I try to make it, though, I get a reader error, specifically:

"Fatal error in reader: proj09.makefile, line 2: Unexpected end of line seen"

Now I know that usually this means that something is formatted incorrectly, but I have no idea what it could be in this case. Also, I am not 100% sure that this is the correct code for the makefile (specifically the assembling of my support.s file, and the linking of both files). I apologize if this is a repeat question, I looked through the archives beforehand and couldn't find anything of use. Any help would be greatly appreciated!

EDIT: I don't see why this would make a difference, but I am using gedit to actually write the code and then transferring the files into SSH for linking.

回答1:

As Joachim told you, the lines should be indented by tab, not by spaces, so the second line should look like:

[TAB]gcc -Wall proj09.driver.o proj09.support.o -o proj09.exe[NEWLINE]

where [TAB] means TAB character.

Also there shouldn't be any spaces after the command. That's why I've put [NEWLINE] char.



回答2:

Aside from the spaces and tabs, this doesn't generate an object file, shouldn't even compile (unless it has main()):

gcc -Wall proj09.support.s 

You should use -c here too:

gcc -Wall -c proj09.support.s 

Note: if you're working on Unix/Linux lose the .exe