Archive

Posts Tagged ‘zlib’

Visual C++ 2008编译libpng

November 9th, 2009 li No comments

1. 主页 http://www.libpng.org/pub/png/libpng.html

2. 最新稳定版本 1.2.40

    源码下载 http://download.sourceforge.net/libpng/lpng1240.zip

3. 编译依赖

    依赖zlib。要求名为zlib的目录位于和libpng源码平级的目录下。libpng会自行编译zlib的源码,而zlib 1.2.3版本中的汇编代码在VC 2008下编译存在问题,参见zlib的编译说明

4. 编译方法

    打开源码中的projects\vc71\libpng.sln工程文件。编译DLL ASM Release和LIB ASM Release就可以了。会得到libpng.lib、libpng13.lib、libpng13.dll。

5. 注意

    ligpng会编译自己的zlib1.dll和zlib.lib,不知道编译参数和zlib自己的工程文件是否一样,也不知道和zlib工程文件编译出的dll和lib会不会冲突。这个问题留待考察。

Categories: 开源软件 Tags: , , ,

Visual C++ 2008编译zlib

November 8th, 2009 li No comments

记录下Visual C++ 2008编译zlib的过程,以备不时之需。

1. 项目主页 http://www.zlib.net/

2. 当前最新稳定版本 1.2.3,2005年7月发布

源码下载 http://www.zlib.net/zlib123.zip

3. VC编译方法

解压后,打开项目文件projects\visualc6\zlib.dsw,新版本的VC会提示要做工程格式转换。一般只编译其中zlib项目的DLL Release和LIB Release就好了。

4. Bug

如果想编译zlib的DLL ASM Release和LIB ASM Release,会出现下面的错误:

contrib\masmx86\inffas32.asm(647) : error A2070:invalid instruction operands
contrib\masmx86\inffas32.asm(649) : error A2070:invalid instruction operands
contrib\masmx86\inffas32.asm(663) : error A2070:invalid instruction operands
contrib\masmx86\inffas32.asm(720) : error A2070:invalid instruction operands

这是因为VC2008的MASM语法更严格了,导致之前的代码语法检查不过。参照这里的说明,把inffas32.asm改好就OK了。或者下载我改好的

Categories: 开源软件 Tags: , , ,