2

我为学校项目创建的 makefile 存在一些问题。我正在编译和汇编一个 C 文件和一个 SPARC 汇编文件(分别)并链接它们。我在 Unix 环境中工作。这是生成文件:

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% 确定这是生成文件的正确代码(特别是我的 support.s 文件的组装,以及两个文件的链接)。如果这是一个重复的问题,我深表歉意,我事先浏览了档案,找不到任何有用的东西。任何帮助将不胜感激!

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

4

2 回答 2

2

正如 Joachim 告诉你的那样,这些行应该按制表符缩进,而不是空格,所以第二行应该如下所示:

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

其中 [TAB] 表示 TAB 字符。

命令后也不应该有任何空格。这就是我放置 [NEWLINE] 字符的原因。

于 2012-11-23T16:00:11.660 回答
0

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

gcc -Wall proj09.support.s 

你也应该-c在这里使用:

gcc -Wall -c proj09.support.s 

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

于 2012-11-23T16:03:05.143 回答