尝试安装PyQt5失败

简介:

卡在:编译 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;
    }

目录
相关文章
|
8月前
|
XML 网络安全 数据库
【Qt 安装】安装Qt源码所需的前置库
【Qt 安装】安装Qt源码所需的前置库
97 0
|
开发工具 C语言 Windows
QT学习第一步 QT下载及安装详细步骤
QT学习第一步 QT下载及安装详细步骤
|
编译器 测试技术 C语言
Qt下载与安装(一)
Qt下载与安装
11583 2
Qt下载与安装(一)
|
XML SQL 编译器
|
自然语言处理 数据可视化 C语言
Qt下载与安装(二)
Qt下载与安装
633 0
Qt下载与安装(二)
|
存储 Ubuntu 编译器
嵌入式开发板QT库的安装方法之优秀
嵌入式开发板QT库的安装方法之优秀
337 0
嵌入式开发板QT库的安装方法之优秀
|
XML 数据可视化 IDE
GUI库:PyQt5
GUI库:PyQt5
515 0
GUI库:PyQt5
项目实战:Qt编译Qt库以及使用C#调用Qt库,并实现C#集成Qt的tcp客户端
项目实战:Qt编译Qt库以及使用C#调用Qt库,并实现C#集成Qt的tcp客户端
|
Linux 计算机视觉 Windows
关于 Qt编译环境从Qt5迁移到Qt4遇到Qt::FramelessWindowHint失效 的解决方法
关于 Qt编译环境从Qt5迁移到Qt4遇到Qt::FramelessWindowHint失效 的解决方法
关于 Qt编译环境从Qt5迁移到Qt4遇到Qt::FramelessWindowHint失效 的解决方法