未找到 libpng“png_set_longjmp_fn”
Posted
技术标签:
【中文标题】未找到 libpng“png_set_longjmp_fn”【英文标题】:libpng "png_set_longjmp_fn" not found 【发布时间】:2014-02-27 23:38:15 【问题描述】:我正在使用来自 ubuntu 的 libpng,当我尝试编译一个 c++ 文件时,我得到了
对 `png_set_longjmp_fn' 的未定义引用
我使用的是 libpng 1.6.8 版
如果您有兴趣阅读代码,请告诉我,但这与我的错误代码无关。
提前谢谢你。
【问题讨论】:
【参考方案1】:也许您使用 libpng-1.6.8 构建,但链接到早期版本的 libpng。 “png_set_longjmp_fn()”API 是在 libpng-1.4.x 中引入的。 Ubuntu 13:10 目前带有 libpng-1.2.49(参见 /usr/include/libpng12),它不提供 png_set_longjmp_fn()。
【讨论】:
【参考方案2】:如果您在较旧的 Playstation Portable 程序上执行此操作,您的源目录中也可能有陈旧的库。运行 rm *.a
然后运行 make clean
恰好为我修复了该错误消息。
【讨论】:
【参考方案3】:就我而言,我的 ubuntu 附带了旧的 png 1.2,安装在 /usr 中。我在 /usr/local 中安装了 1.6.x。在我的 make 系统中,选择了默认包含 /usr/include 和链接 /usr/lib。在编译任何依赖新接口的软件时,都需要添加
CPPFLAGS="-I/usr/local/include $CPPFLAGS"
LDFLAGS="-L/usr/local/lib $LDFLAGS"
这会捡起来
grep png_set_longjmp_fn png.h
PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structrp png_ptr,
(*png_set_longjmp_fn((png_ptr), longjmp, (sizeof (jmp_buf))))
从较新的界面
【讨论】:
以上是关于未找到 libpng“png_set_longjmp_fn”的主要内容,如果未能解决你的问题,请参考以下文章
未找到 libpng.14.so.14 但已安装在 SUSE 上
在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误
libpng 中未解析的外部 png_set_longjmp_fn
libpng 错误:CgBI:未处理的关键块 xcode 7.3