原文链接:http://www.itzhe.cn/news/20080717/178365.html
我刚刚下了一个zlib的源代码,下载地址:http://www.zlib.net/zlib123.zip,用vc打开其中的projects\visualc6下的zlib.dsw工程文件后,进行编译,就报出了以下的错误:
--------------------Configuration: zlib - Win32 LIB ASM Debug--------------------
Assembling...
'ml.exe' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Error executing c:\windows\system32\cmd.exe.
zlibd.lib - 1 error(s), 0 warning(s)
我找了一下也没发现有“ml.exe”这样的文件啊,不晓得是哪个地方出的问题啊!源代码是绝对没有动过的。希望有对zlib有研究的帮帮忙啊!先谢过啦!
网友回复:ml.exe 是微软汇编编译器, MASM6 或者以后版本,并在PATH 中设置执行路径即可. DDK 也是可以的
网友回复:make line???
网友回复:我已经将MASM6.11安装了也设置了环境变量,在命令行方式下也能正常的运行ml.exe了,但是为什么在vc下还是会报那个错误啊???????我真的快要崩溃啦!希望能告诉我下到底我哪漏掉了啊!
网友回复:那你强制指定路径试一下。或者把ml相关的几个文件放到vc6的bin目录下。
网友回复:引用 4 楼 unsigned 的回复:
那你强制指定路径试一下。或者把ml相关的几个文件放到vc6的bin目录下。
OK!按照你的方式更改后已经不会报ml.exe的错误了!不过现在又出了新的问题!!!!
当用ml来编译inffas32.asm文件时,会报39个错误!!!!在命令行方式下单独编译也会报这39个错误!!!
具体的错误信息如下:
--------------------Configuration: zlib - Win32 LIB ASM Debug--------------------
Assembling...
Assembling: ..\..\contrib\masmx86\inffas32.asm
..\..\contrib\masmx86\inffas32.asm(65): error A2008: syntax error : .
..\..\contrib\masmx86\inffas32.asm(638): error A2008: syntax error : emms
..\..\contrib\masmx86\inffas32.asm(644): error A2008: syntax error : mm0
..\..\contrib\masmx86\inffas32.asm(647): error A2008: syntax error : mm4
..\..\contrib\masmx86\inffas32.asm(648): error A2008: syntax error : movq
..\..\contrib\masmx86\inffas32.asm(649): error A2008: syntax error : mm5
..\..\contrib\masmx86\inffas32.asm(650): error A2008: syntax error : movq
..\..\contrib\masmx86\inffas32.asm(651): error A2008: syntax error : pxor
..\..\contrib\masmx86\inffas32.asm(657): error A2008: syntax error : psrlq
..\..\contrib\masmx86\inffas32.asm(662): error A2008: syntax error : mm6
..\..\contrib\masmx86\inffas32.asm(663): error A2008: syntax error : mm7
..\..\contrib\masmx86\inffas32.asm(665): error A2008: syntax error : psllq
..\..\contrib\masmx86\inffas32.asm(667): error A2008: syntax error : por
..\..\contrib\masmx86\inffas32.asm(670): error A2008: syntax error : pand
..\..\contrib\masmx86\inffas32.asm(671): error A2008: syntax error : eax
..\..\contrib\masmx86\inffas32.asm(672): error A2008: syntax error : movq
..\..\contrib\masmx86\inffas32.asm(677): error A2008: syntax error : mm1
..\..\contrib\masmx86\inffas32.asm(706): error A2008: syntax error : psrlq
..\..\contrib\masmx86\inffas32.asm(707): error A2008: syntax error : mm1
..\..\contrib\masmx86\inffas32.asm(708): error A2008: syntax error : ecx
..\..\contrib\masmx86\inffas32.asm(714): error A2008: syntax error : psrlq
..\..\contrib\masmx86\inffas32.asm(719): error A2008: syntax error : mm6
..\..\contrib\masmx86\inffas32.asm(720): error A2008: syntax error : mm7
..\..\contrib\masmx86\inffas32.asm(722): error A2008: syntax error : psllq
..\..\contrib\masmx86\inffas32.asm(724): error A2008: syntax error : por
..\..\contrib\masmx86\inffas32.asm(728): error A2008: syntax error : pand
..\..\contrib\masmx86\inffas32.asm(729): error A2008: syntax error : eax
..\..\contrib\masmx86\inffas32.asm(730): error A2008: syntax error : movq
..\..\contrib\masmx86\inffas32.asm(739): error A2008: syntax error : mm1
..\..\contrib\masmx86\inffas32.asm(747): error A2008: syntax error : psrlq
..\..\contrib\masmx86\inffas32.asm(748): error A2008: syntax error : mm1
..\..\contrib\masmx86\inffas32.asm(749): error A2008: syntax error : ecx
..\..\contrib\masmx86\inffas32.asm(808): error A2008: syntax error : psrlq
..\..\contrib\masmx86\inffas32.asm(809): error A2008: syntax error : ecx
..\..\contrib\masmx86\inffas32.asm(821): error A2008: syntax error : psrlq
..\..\contrib\masmx86\inffas32.asm(822): error A2008: syntax error : ecx
..\..\contrib\masmx86\inffas32.asm(1021): error A2008: syntax error : psrlq
..\..\contrib\masmx86\inffas32.asm(1022): error A2008: syntax error : ebp
..\..\contrib\masmx86\inffas32.asm(1024): error A2008: syntax error : emms
Error executing c:\windows\system32\cmd.exe.
example.exe - 39 error(s), 0 warning(s)
希望曾经编译过zlib的达人给予帮助!
是不是我的MASM6 版本太高了,所以对汇编的代码不支持啊????真的崩溃了啊!!!!!!
网友回复:是你的ml版本太低。这上面出错的都是一些新指令。
网友回复:引用 6 楼 unsigned 的回复:
是你的ml版本太低。这上面出错的都是一些新指令。
现在问题解决啦!原来是在编译库的时候应该选win32 lib debug而不是它默认的win32 lib asm debug,虽然有汇编的代码,但是似乎这样选了以后就不会编译汇编代码了哦!呵呵!感谢这么多位的帮助哈!问题解决!Done!