文档章节

尝试安装PyQt5失败

临峰不畏
 临峰不畏
发布于 2014/12/17 22:10
字数 236
阅读 410
收藏 1

卡在:编译 qtbase/src/gui/image/qpnghandler.cpp时报错:

.obj/qpnghandler.o: In function `QPngHandlerPrivate::readPngHeader()':
qpnghandler.cpp:(.text+0xbe2): undefined reference to `png_set_longjmp_fn'
.obj/qpnghandler.o: In function `QPNGImageWriter::writeImage(QImage const&, int, QString const&, int, int)':
qpnghandler.cpp:(.text+0x273b): undefined reference to `png_set_longjmp_fn'
.obj/qpnghandler.o: In function `QPngHandlerPrivate::readPngImage(QImage*)':
qpnghandler.cpp:(.text+0x30cc): undefined reference to `png_set_longjmp_fn'
collect2: ld returned 1 exit status

我以为是没有加-lpng库,在Makefile中添加了 -lpng,结果还是没能解决。

打开qtbase/src/gui/image/qpnghandler.cpp文件:

#if PNG_LIBPNG_VER >= 10400 && PNG_LIBPNG_VER <= 10502 \
        && defined(PNG_PEDANTIC_WARNINGS_SUPPORTED)
/*
    Versions 1.4.0 to 1.5.2 of libpng declare png_longjmp_ptr to
    have a noreturn attribute if PNG_PEDANTIC_WARNINGS_SUPPORTED
    is enabled, but most declarations of longjmp in the wild do
    not add this attribute. This causes problems when the png_jmpbuf
    macro expands to calling png_set_longjmp_fn with a mismatched
    longjmp, as compilers such as Clang will treat this as an error.

    To work around this we override the png_jmpbuf macro to cast
    longjmp to a png_longjmp_ptr.
*/
#   undef png_jmpbuf
#   ifdef PNG_SETJMP_SUPPORTED
#       define png_jmpbuf(png_ptr) \
            (*png_set_longjmp_fn((png_ptr), (png_longjmp_ptr)longjmp, sizeof(jmp_buf)))
#   else
#       define png_jmpbuf(png_ptr) \
            (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP)
#   endif
#endif

这该怎么处理呀?

如下为调用到 png_jmpbuf 的地方:

    if (setjmp(png_jmpbuf(png_ptr))) {
        png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
        png_ptr = 0;
        amp.deallocate();
        state = Error;
        return false;
    }












© 著作权归作者所有

临峰不畏
粉丝 218
博文 187
码字总数 98583
作品 0
深圳
架构师
私信 提问
记录一下,Mac下无法安装pyqt5-tools

最近想研究一下python的qt,搜了一些资料,需要先安装pyqt5(这个只是库文件,编写界面还是没有可视化操作),另外可视化界面还需安装pyqt5-tools,在安装过程中总是报错,如下: 没办法,想...

linxyz
2018/11/30
0
0
Spyder 导入 matplotlib 错误:ModuleNotFoundError: No module named 'PyQt4'

最近刚学了matplotlib,想在anaconda的spyder里耍一耍 代码如下(其实不重要,主要是导入了matplotlib.pyplot报错) # -- coding: utf-8 --"""Created on Thu Jul 12 21:36:51 2018 @author:......

丿隔岸观灬
2018/07/13
0
0
PyQT5速成教程-1 简介与环境搭建

PyQt简介 一个良好的界面是人机交互中十分重要的一环。 Python作为脚本语言,起初并未拥有GUI开发的部分。但随着其开放的扩展性,使得Python不断壮大,有PyQt、Tkinter,PyGUI等GUI Toolkit...

养薛定谔的猫
2018/06/02
0
0
linux下PyQt5安装失败,求助!

想建立PyQt5环境 简单介绍下,纯净ubuntu14.10+python3.4.2+sip4.16.4+qt5.3.2 就差Pyqt5.3.2结果提示失败,代码在下面,我搜了许多教程感觉我的安装方法应该没错,实在没招了 ,特来求助,我...

valerians
2014/11/26
1K
1
pyqt5在mac os 安装

PyQT5 手动安装 因为依赖的关系, 需要分别下载以及 SIP Download PyQt5 python sip install 解压,make,再安装 tar -xvf sip*.tar.gz python configure.py make sudo make install pyqt5 ......

openthings
2015/01/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

texlive安装

Installing to: D:/bin/texlive/texlive/2019Installing [001/307, time/total: ??:??/??:??]: adobemapping [2130k]Installing [002/307, time/total: 00:03/08:57]: ae [84k]Installing......

MtrS
49分钟前
2
0
运维规范

命名规范 发布流程 监控告警 故障定位 状态 日志 监控

以谁为师
今天
2
0
约瑟夫环(报数游戏)java实现

开端 公司组织考试,一拿到考题,就是算法里说的约瑟夫环,仔细想想 以前老师将的都忘了,还是自己琢磨把~ package basic.gzy;import java.util.Iterator;import java.util.LinkedList;...

无极之岚
今天
3
0
Kernel字符设备驱动框架

Linux设备分为三大类:字符设备,块设备和网络设备,这三种设备基于不同的设备框架。相较于块设备和网络设备,字符设备在kernel中是最简单的,也是唯一没有基于设备基础框架(device结构)的...

yepanl
今天
3
0
Jenkins 中文本地化的重大进展

本文首发于:Jenkins 中文社区 我从2017年开始,参与 Jenkins 社区贡献。作为一名新成员,翻译可能是帮助社区项目最简单的方法。 本地化的优化通常是较小的改动,你无需了解项目完整的上下文...

Jenkins中文社区
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部