`
izuoyan
  • 浏览: 9222935 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

zlib 在 Visual Studio 2005 下编译失败的解决办法

阅读更多

最近需要读写 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

    "VS2005下编译的libpng.lib和zlib.lib"是一个关于在Microsoft Visual Studio 2005(VS2005)环境下使用的两个关键库文件——libpng和zlib的专题。 首先,libpng是一个开源的PNG(Portable Network Graphics)图像...

    zlib 1.2.11 的windows x64编译版本,包含debug和release

    在编译Zlib时,你需要C++编译器,如Visual Studio。编译过程包括配置项目设置、设置预处理器宏、链接库等步骤。对于Windows x64平台,需要确保编译器设置为生成64位代码。编译完成后,通常会得到动态链接库(.dll)...

    vs2013 编译64位zlib1.2.8

    为了在Windows环境下编译64位的Zlib,我们需要Visual Studio 2013环境,因为VS2013支持x64架构的编译。描述中提到的“bld_ml64.bat”文件是编译脚本,用于自动化编译过程。这个脚本通常包含了设置编译器选项、链接器...

    zlib1.2.11cmake+vs2019编译的四种库.rar

    标题中的“zlib1.2.11cmake+vs2019编译的四种库.rar”指的是一款名为zlib的压缩库,版本为1.2.11,它使用CMake构建系统,并在Visual Studio 2019环境下编译生成了四种不同的配置。这些配置包括适用于32位和64位系统...

    zlib_1.2.11(二进制预编译包和对应的源代码 vs2017版)

    **zlib库详解** ...综上所述,zlib_1.2.11提供了预编译的二进制库和源代码,方便开发者在Visual Studio 2017环境下快速集成和定制。通过理解和使用这些资源,我们可以轻松地在C++项目中利用zlib的强大压缩功能。

    zlib1.2.11VS2019命令行bld编译四种库.rar

    安装完成后,打开命令提示符窗口,通常可以在“开始”菜单中找到“Visual Studio 2019”下的“开发人员命令提示符”。 接下来,下载zlib1.2.11的源代码包,解压到一个方便的位置。进入源代码目录,例如: ``` cd C...

    zlib 1.2.11 vs2019编译的库

    本文将详细讨论一个特定的库——`zlib`,特别是针对`zlib 1.2.11`版本,它是使用Visual Studio 2019(VS2019)编译的,并且包含了不同架构下的调试(Debug)和发布(Release)版本。 `zlib`是一个开源的、跨平台的...

    librtmp zlib openssl源码 编译方法 编译工具 编译好的librtmp.lib合集.zip

    这个压缩包包含了librtmp、zlib和openssl的源码,以及它们在VS2017下的编译方法和编译好的库文件。对于开发者来说,这意味着可以直接使用这些编译好的库来开发支持RTMP协议的应用,无需从头编译源码,节省了时间和...

    编译好的zlib库,可以直接使用

    6. **无损压缩**:Zlib库采用的DEFLATE算法是一种无损压缩方法,意味着压缩后的数据在解压缩后能完全恢复原样,不会丢失任何信息。 1.2.11版本的更新可能包括性能优化,bug修复,以及对新硬件和操作系统的支持。在...

    zlib 1.2.8 VS2013编译

    《zlib 1.2.8在VS2013中的编译详解》 zlib是一个广泛使用的开源压缩库,其版本1.2.8在众多项目中被采纳,包括游戏开发、网络通信以及数据存储等领域。对于Windows平台,Visual Studio(VS)是常见的开发环境,特别...

    openssl-1.1.1a编译静态库 + zlib-1.2.11编译静态库 (x86 x64)

    完成以上步骤后,你将在指定的目录下找到编译好的静态库文件(如libz.a和libssl.a、libcrypto.a)。这些库可以被其他软件项目直接链接,而无需依赖系统中的动态库版本。 在实际开发中,使用静态库有时能避免版本...

    VS2015编译zlib1.2.8静态库

    本文将详细介绍如何使用Visual Studio 2015 (VS2015) 编译Zlib 1.2.8的静态库,并在编译过程及后续使用中需要注意的关键点。 首先,你需要下载Zlib的源代码,版本为1.2.8。这个版本是稳定且被广泛支持的。在下载...

    vs2008编译的libpng zlib

    【标题】"VS2008编译的libpng zlib" 涉及的主要知识点是图像处理库libpng和压缩库zlib在Visual Studio 2008环境下的编译与应用。 【libpng】是PNG(Portable Network Graphics)图像格式的开源库,用于读取、写入和...

    zlib 最新版 v1.2.11 编译的DLL (debug & release)

    在本例中,zlib v1.2.11是使用Visual Studio 2013编译的,这表明它已经适应了微软的编译环境,适用于32位系统。编译过程中通常包括以下步骤: 1. **配置项目**:设置Visual Studio项目属性,选择合适的编译器版本和...

    zlib1.2.11VS219编译的四种msvc动态库静态库.rar

    VS2019(Visual Studio 2019)是Microsoft提供的一个集成开发环境(IDE),其中包含了MSVC(Microsoft Visual C++)编译器。MSVC是Windows平台上编译C++代码的主要工具,它支持C++11、C++14、C++17和C++20等标准。在...

    curl zlib openssl库编译后的dll

    总的来说,这个压缩包提供了一个完整的解决方案,包含编译好的curl、zlib和openssl库,以及可能的编译和使用指南,对于在Windows环境下开发需要网络通信和加密功能的应用程序的开发者来说,这是一个非常实用的资源。

    zlib-1.2.5

    描述中的“解压后在zlib-1.2.5\old\visualc6下启动”指示了这个压缩包包含的是Zlib源代码,并且是为在旧版的Microsoft Visual Studio环境中,具体说是Visual Studio 6,进行编译而准备的。这表明用户可能需要使用...

    zlib-1.2.12 windows版本

    1. **编译配置**:在VS2019中,开发者可以将提供的头文件(在`include`目录下)和库文件(在`lib`目录下)添加到项目中,以便编译时链接Zlib。 2. **调试与发布**:对于调试和发布版本,可以选择相应的.dll文件(在`...

Global site tag (gtag.js) - Google Analytics