最近需要读写 png 文件,按照以前的办法试验,却发现无法编译zlib 1.2.3。出错信息为:
inffas32.asm(594) : error A2070: invalid instruction operands
inffas32.asm(596) : error A2070: invalid instruction operands
inffas32.asm(610) : error A2070: invalid instruction operands
inffas32.asm(667) : error A2070: invalid instruction operands
上网一查,发现别人也遇到相同的问题:http://svn.haxx.se/dev/archive-2005-11/0942.shtml。原因在于
It (Microsoft Macro Assembler 8.0, included with Visual C++ 2005 Express )refuses to assemble a MOVD instruction with a memory operand with an implied size, and requires that "dword ptr" prefix the memory operand.
微软说这是by design,不是bug:
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=6306f7dc-2cc2-4591-bd60-5d802178fdfa
解决办法是把inffas32.asm中的4处出错的类似
movd mm4, [esp+0]
的汇编代码,添加dword ptr修饰符,改为
movd mm4,dword ptr [esp+0]
这样就能顺利编译、通过测试了。
分享到:
相关推荐
"VS2005下编译的libpng.lib和zlib.lib"是一个关于在Microsoft Visual Studio 2005(VS2005)环境下使用的两个关键库文件——libpng和zlib的专题。 首先,libpng是一个开源的PNG(Portable Network Graphics)图像...
在编译Zlib时,你需要C++编译器,如Visual Studio。编译过程包括配置项目设置、设置预处理器宏、链接库等步骤。对于Windows x64平台,需要确保编译器设置为生成64位代码。编译完成后,通常会得到动态链接库(.dll)...
为了在Windows环境下编译64位的Zlib,我们需要Visual Studio 2013环境,因为VS2013支持x64架构的编译。描述中提到的“bld_ml64.bat”文件是编译脚本,用于自动化编译过程。这个脚本通常包含了设置编译器选项、链接器...
标题中的“zlib1.2.11cmake+vs2019编译的四种库.rar”指的是一款名为zlib的压缩库,版本为1.2.11,它使用CMake构建系统,并在Visual Studio 2019环境下编译生成了四种不同的配置。这些配置包括适用于32位和64位系统...
**zlib库详解** ...综上所述,zlib_1.2.11提供了预编译的二进制库和源代码,方便开发者在Visual Studio 2017环境下快速集成和定制。通过理解和使用这些资源,我们可以轻松地在C++项目中利用zlib的强大压缩功能。
安装完成后,打开命令提示符窗口,通常可以在“开始”菜单中找到“Visual Studio 2019”下的“开发人员命令提示符”。 接下来,下载zlib1.2.11的源代码包,解压到一个方便的位置。进入源代码目录,例如: ``` cd C...
本文将详细讨论一个特定的库——`zlib`,特别是针对`zlib 1.2.11`版本,它是使用Visual Studio 2019(VS2019)编译的,并且包含了不同架构下的调试(Debug)和发布(Release)版本。 `zlib`是一个开源的、跨平台的...
这个压缩包包含了librtmp、zlib和openssl的源码,以及它们在VS2017下的编译方法和编译好的库文件。对于开发者来说,这意味着可以直接使用这些编译好的库来开发支持RTMP协议的应用,无需从头编译源码,节省了时间和...
6. **无损压缩**:Zlib库采用的DEFLATE算法是一种无损压缩方法,意味着压缩后的数据在解压缩后能完全恢复原样,不会丢失任何信息。 1.2.11版本的更新可能包括性能优化,bug修复,以及对新硬件和操作系统的支持。在...
《zlib 1.2.8在VS2013中的编译详解》 zlib是一个广泛使用的开源压缩库,其版本1.2.8在众多项目中被采纳,包括游戏开发、网络通信以及数据存储等领域。对于Windows平台,Visual Studio(VS)是常见的开发环境,特别...
完成以上步骤后,你将在指定的目录下找到编译好的静态库文件(如libz.a和libssl.a、libcrypto.a)。这些库可以被其他软件项目直接链接,而无需依赖系统中的动态库版本。 在实际开发中,使用静态库有时能避免版本...
本文将详细介绍如何使用Visual Studio 2015 (VS2015) 编译Zlib 1.2.8的静态库,并在编译过程及后续使用中需要注意的关键点。 首先,你需要下载Zlib的源代码,版本为1.2.8。这个版本是稳定且被广泛支持的。在下载...
【标题】"VS2008编译的libpng zlib" 涉及的主要知识点是图像处理库libpng和压缩库zlib在Visual Studio 2008环境下的编译与应用。 【libpng】是PNG(Portable Network Graphics)图像格式的开源库,用于读取、写入和...
在本例中,zlib v1.2.11是使用Visual Studio 2013编译的,这表明它已经适应了微软的编译环境,适用于32位系统。编译过程中通常包括以下步骤: 1. **配置项目**:设置Visual Studio项目属性,选择合适的编译器版本和...
VS2019(Visual Studio 2019)是Microsoft提供的一个集成开发环境(IDE),其中包含了MSVC(Microsoft Visual C++)编译器。MSVC是Windows平台上编译C++代码的主要工具,它支持C++11、C++14、C++17和C++20等标准。在...
总的来说,这个压缩包提供了一个完整的解决方案,包含编译好的curl、zlib和openssl库,以及可能的编译和使用指南,对于在Windows环境下开发需要网络通信和加密功能的应用程序的开发者来说,这是一个非常实用的资源。
描述中的“解压后在zlib-1.2.5\old\visualc6下启动”指示了这个压缩包包含的是Zlib源代码,并且是为在旧版的Microsoft Visual Studio环境中,具体说是Visual Studio 6,进行编译而准备的。这表明用户可能需要使用...
1. **编译配置**:在VS2019中,开发者可以将提供的头文件(在`include`目录下)和库文件(在`lib`目录下)添加到项目中,以便编译时链接Zlib。 2. **调试与发布**:对于调试和发布版本,可以选择相应的.dll文件(在`...