回 帖 发 新 帖 刷新版面

主题:各位前辈帮我看看这是什么意思,有劳了。(急)

一个计算机三级的题,源程序prog1.asm已经正确通过汇编生成了prog1.obj,但当LINK prog1.obj io.obj时出现了以下文字:
              LINK:error: fatal error LNK1123: failure during conversation to COFF:file invalid or corrupt 
              Segment reference in fixup record
请高手指点这是什么意思,该怎么解决啊?小弟先行谢过了。

回复列表 (共7个回复)

沙发


不懂[em15]

板凳

请用link prog1+io 试试。

3 楼

多谢指点!

4 楼

汇编器生成的obj格式不正确,如果你用的是masm32,请使用参数/coff,例:
   \masm32\bin\ml /c /coff prog1.asm

5 楼

多谢这位仁兄!那是不是在masm32条件下就不能用masm、link等指令了,只要源程序没有错,用ml指令编译和连接格式就正确了?另外,参数/coff具体是什么意思啊?

6 楼

masm32 是一个汇编工具集,它用的汇编器就是masm,低版本的masm的执行文件可能是masm.exe,高版本的masm程序集中的汇编器执行文件是ml.exe,目前,masm32 7.0,8,0,9,0中用的ml均为6.0以上版本。.obj文件的格式有好多处,32位的链接器需要coff的格式,所以你必须指定参数 /coff,以使生成的目标文件能够被链接成功。如果你使用16位的链器生成dos程序,那么就是不需要这个参数。
  顺便说一下,高版本的ml.exe依然可以汇编成16位dos程序, 当然也可以汇编以得到32位的windows程序。

7 楼

好的,多谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册