zoukankan      html  css  js  c++  java
  • 编译pano13的一些注意事项

    作者:朱金灿

    来源:http://blog.csdn.net/clever101

     

           pano是一个开源图像拼接库,pano13就是它的1.3版本。今天编译这个库,发现需要注意一个地方。pano是依赖于png库的。我设置依赖的png库的版本是1.5.12。在编译pano13出现下面错误:

     

    错误285error C2037: “jmpbuf”的左侧部分指定未定义的结构/联合“png_struct_def”e:srcTestlibpano13-2.9.17png.c64

    错误287error C2037: “jmpbuf”的左侧部分指定未定义的结构/联合“png_struct_def”e:srcTestlibpano13-2.9.17png.c173

    错误286error C2168: “_setjmp”: 内部函数的实参太少e:srcTestlibpano13-2.9.17png.c64

    错误288error C2168: “_setjmp”: 内部函数的实参太少e:srcTestlibpano13-2.9.17png.c173

     

            发现需要在编译png库需要设置预处理器:PNG_SETJMP_SUPPORTED,pano13工程中同样需要设置预处理器:PNG_SETJMP_SUPPORTED

     

    然后在pano13工程需要修改两处代码:

    64行的if (setjmp(png_ptr->jmpbuf))改为if(png_jmpbuf(png_ptr)),174行的if (setjmp(png_ptr->jmpbuf))改为if(png_jmpbuf(png_ptr))。

     

       原因是png的头文件中有说明:

     This function should be used by libpng applications in place of longjmp(png_ptr->jmpbuf, val).  If longjmp_fn() has been set, it will use it; otherwise it will call PNG_ABORT().  This function was added in libpng-1.5.0.


            还有一个错误是编译png.c时出现png_struct_def结构体无法识别的错误,解决办法是在#include "png.h"下面增加一行代码:#include <pnginfo.h>。


  • 相关阅读:
    [Angular 2] Handle Reactive Async opreations in Service
    移动应用中的流设计
    Linux/Unix--设备类型
    [CF 276C]Little Girl and Maximum Sum[差分数列]
    Java多态
    Shiro(4)默认鉴权与自定义鉴权
    HDU4667(有错)
    weblogic8.1 登陆5 ip 限制
    [置顶] struts2+hibernate+spring整合(annotation版)
    hdu2159 二维完全背包
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470254.html
Copyright © 2011-2022 走看看