分享

Visual C 下面编译 libpng, libjpeg 和 ImageMagick...

 yyy2k3 2013-03-11

这几天在学习CImg库,这个CImg库相当强大,API也设计得什么规整,值得学习借鉴。编译用到几个开源库遇到些问题,记录下来备忘。

 

1. libpng

首先需要下载一份zlib的源码并解压到zlib目录,zlib目录和libpng-1.2.39/目录放在一起

用VS2008/2005打开libpng-1.2.39/projects/visualc71/libpng.sln

编译默认“DLL ASM Debug Win32”出错,

1>------ Build started: Project: zlib, Configuration: DLL ASM Debug Win32 ------
1>Assembling...
1> Assembling: e:/3rdSDK/zlib/contrib/masmx86/inffas32.asm
1>e:/3rdSDK/zlib/contrib/masmx86/inffas32.asm(647) : error A2070: invalid instruction operands
1>e:/3rdSDK/zlib/contrib/masmx86/inffas32.asm(649) : error A2070: invalid instruction operands
1>e:/3rdSDK/zlib/contrib/masmx86/inffas32.asm(663) : error A2070: invalid instruction operands
1>e:/3rdSDK/zlib/contrib/masmx86/inffas32.asm(720) : error A2070: invalid instruction operands
1>Project : error PRJ0019: A tool returned an error code from "Assembling..."

找了一圈也没人能解释为什么错,突然灵机一动,选“LIB Debug Win32”再编,一下就成功了。晕到死,这么简单。不明白为什么libpng要建那些编不过的配置项还设为默认的。

 

2. libjpeg

libjpeg,以vs2008为例, 首先要把jconfig.vc复制为jconfig.h,然后到命令行下面

cd /d "C:/Program Files/Microsoft Visual Studio 9.0/VC"

vcvarsall.bat

cd /d E:/3rdSDK/jpeg-7

nmake -f makefile.vc

 

完成后取出libjpeg.lib就行了

 

3. ImageMagick

这个要注意的是下载的时候就要下对版本,一般给出的下载路径都是

http://image_magick./image_magick

但是用vc编译的话,你得往下看找到一个windows目录

http://image_magick./image_magick/windows

下载回来,需要编译里面的VisualMagick,非windows版是没有这个目录的

ImageMagick-windows.zip/ImageMagick-6.5.4/VisualMagick/configure

运行编译生成的configure.exe, 用它来生成vc的项目文件

有网友说vs2008编译会出错,需要查找imagemagick中所有的_vsnprintf的宏定义#    define vsnprintf _vsnprintf。解决办法就是将其注释或者修改成如下的样子:

 #if (_MSC_VER < 1500)
#define vsnprintf _vsnprintf
#endif

目前还没碰到这个问题

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多