回 帖 发 新 帖 刷新版面

主题:汇编文件怎样连接

<a href = "http://www.programfan.com"><img src = "bold.gif"></a>
我使用的是masm 6.11+winxp
使用masm命令,可以生成.obj文件
但使用link 命令对.obj文件连接时,出现如下错误:
LINK: error : Segment reference in fixup record
s.obj: fatal error LNK1123: failure during conversion to COFF:file invalid or corrupt

请各位指点一下这是怎么回事,是编译器的配置问题吗

原代码我上传到了这个论坛上了
http://upload.programfan.com/upfile/200602041322785.rar

回复列表 (共1个回复)

沙发

问题终于查清了,是我的 环境变量 的 path设置有问题!
1。在masm 5下编译的两个命令 是masm 和link ,在MASM611下可以直接运行ml,但ml命令其实是masm 和link 命令的组合。
2。如果没有对MASM611 设置环境变量的path,
   那么.asm文件只能在目录X:\MASM611\BIN编译,并且要把X:\MASM611\BINR下的link拷贝到X:\MASM611\BIN;使masm文件和link文件同     在X:\MASM611\BIN下,此时可以分别使用masm和link,或者用ml。
3。我的问题是设置环境变量,C:\MASM611\BIN;(masm在这个目录下)C:\MASM611\BINR(link在这个目录下)。
   但忽略了我安装的vc++自动设置了D:\Program Files\Microsoft Visual Studio\VC98\bin,在这个目录下也有一个link文件,
   我在用link连接时,其实使用的是vc++的link命令!!!这当然会出错!!!
   
4。解决办法是只设置 C:\MASM611\BIN;就行,然后把。\MASM611\BINR下的link文件拷贝到你要编译的.asm文件的所在目录。
   或者大义灭亲,把vc的D:\Program Files\Microsoft Visual Studio\VC98\bin设置删掉,这样使用link就不会出现问题了^_^

我来回复

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