Makefile问题 - 读者的致命错误

时间:2012-11-23 15:48:54

标签: c gcc assembly makefile sparc

我正在为学校项目创建的makefile遇到一些问题。我正在编译和组装C文件和SPARC程序集文件(分别)并链接它们。我在Unix环境中工作。这是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 

但是,当我尝试制作它时,我得到了一个读者错误,特别是:

“读者致命错误:proj09.makefile,第2行:看到意外的行尾”

现在我知道通常这意味着某些内容格式不正确,但我不知道在这种情况下可能是什么。此外,我不是100%确定这是makefile的正确代码(特别是我的support.s文件的组装,以及两个文件的链接)。如果这是一个重复的问题,我道歉,我事先查看了档案,找不到任何有用的东西。任何帮助将不胜感激!

编辑:我不明白为什么这会有所作为,但我使用gedit实际编写代码然后将文件传输到SSH进行链接。

2 个答案:

答案 0 :(得分:2)

正如约阿希姆告诉你的那样,线条应该用制表符缩进,而不是用空格缩进,所以第二行应该是这样的:

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

其中[TAB]表示TAB字符。

命令后也不应该有任何空格。这就是为什么我把[NEWLINE] char。

答案 1 :(得分:0)

除了空格和制表符之外,这不会生成目标文件,甚至不应该编译(除非它有main()):

gcc -Wall proj09.support.s 

您也应该在这里使用-c

gcc -Wall -c proj09.support.s 

注意:如果您在Unix / Linux上工作,请丢失.exe