关于POM程序和Libpng使用中出现的一些问题

在尝试运行POM C语言版本时,遇到与Libpng的兼容性问题,通过修改POM源码,用png_get_*系列函数替换直接访问png_info结构体字段,成功编译。对于Python版本的POM,出现'parsepom'模块找不到的错误,将编译生成的.so文件放入Python环境的site-packages目录并调整文件名为对应版本,解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装Libpng

这篇文章写得很清楚,照着安装没啥问题。
https://blog.youkuaiyun.com/weixin_38176039/article/details/82020865

一些问题

1.在运行POM的C语言版本程序时,需要先安装Libpng,然后运行POM安装程序出现下面报错。
/usr/local/include/png.h:458:16: note: forward declaration of ‘png_info {aka struct png_info_def}’
typedef struct png_info_def png_info;
src/rgb_image.cc:220:50: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
在这里插入图片描述
查找了网上资料,有可能是引用第三方库的问题,也有可能是版本问题,总之不好使。于是我修改了POM源码,在rgb_image.cc中,这种info_ptr->rowbytes的指针全部改为调用Libpng的函数。例如,
// _width = info_ptr->width;
_width = png_get_image_width(png_ptr, info_ptr);
// _height = info_ptr->height;
_heigh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值