北京SEO

gentoo系统升级后libpng编译不正常解决办法

2019/10/10/17:44:46  阅读:1640  来源:谷歌SEO算法  标签: 微信公众号

libpng 是一套免费的、公开源代码的程序库,支持对 PNG 图形文件的创建、读写等操作,本文来记录gentoo升级后libpng不能正常使用的解决办法.

升级完系统之后,就提示libpng升级了,需要重新emerge @preserved-rebuild,悲剧的是,很多包完全编译不过了,这几记录下部分包的解决方案.

1、gnome-extra/libgda编译失败

在链接的时候,会提示-lpng14找不到,很明显是因为libpng升级到1.5导致的,但是,搜索了libgda里面的所有Makefile文件,都没有发现有地方写名链接libpng14这个动态链接库的地方,最后找到的原因是因为/usr/lib64/目录中有很多xxx.la文件,是libtool用来管理依赖用的,其中有些动态链接库里面的依赖写名了-lpng14.

找到了原因,解决起来就方便了,首先通过grep命令找到所有写死-lpng14的地方,重新emerge这些库,不过这里发现有些库重新emerge了,依赖还是没有纠正,最后通过手工改这些文件,改成-lpng15.

重新emerge就OK了.

2、opencv编译失败

opencv编译失败,提示的是error:‘MAX_MEM_LEVEL’ was not declared in this scope等错误,google了下,是因为libpng1.5.x将原先暴露出来的png文件结构都隐藏了,头文件里面只有一个预先声明和一堆typedef,这些应该是原来在定义这些png图片结构的时候,依赖的zlib,现在没法间接依赖了.

解决方法当然就是写个补丁,强制modules/highgui/src/grfmt_png.cpp这个文件include zlib.h这个头文件,补丁内容如下:

  1. —modules/highgui/src/grfmt_png.cpp.old2011-09-1919:36:49.759516862+0800
  2. +++modules/highgui/src/grfmt_png.cpp2011-09-1919:28:04.302185712+0800//phpfensi.com
  3. @@-55,6+55,7@@
  4. #include<libpng/png.h>
  5. #else
  6. #include<png.h>
  7. +#include<zlib.h>
  8. #endif
  9. #include“grfmt_png.hpp”

自己写个local portage,编译好了opencv.

另外还有wxPython,这个目前真没办法了,也是因为libpng1.5.x隐藏了png图片结构体,导致原来直接通过结构体指针访问结构体内容全部出错,貌似没看见补丁,再说了.

广告内容

gentoo系统升级后libpng编译不正常解决办法 gentoo系统升级后libpng编译不正常解决办法 gentoo系统升级后libpng编译不正常解决办法

相关阅读

热门评论

SEO探索者团队 SEO探索者团队

SEO服务&网站优化

总篇数182

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法