Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Incompatible libpng version in application and library
Forum Updated to NodeBB v4.3 + New Features

Incompatible libpng version in application and library

Scheduled Pinned Locked Moved Solved QML and Qt Quick
26 Posts 3 Posters 4.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #16

    What QPA and theme plugins gets loaded ?

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    Tom assoT 1 Reply Last reply
    0
    • SGaistS SGaist

      What QPA and theme plugins gets loaded ?

      Tom assoT Offline
      Tom assoT Offline
      Tom asso
      wrote on last edited by Tom asso
      #17

      @SGaist - Thanks very much for your help!
      I discovered which library is causing the problem. It's a non-Qt library that doesn't directly rely on libpng, but it does rely on 50+ other libraries - apparently one of those does directly or indirectly rely on libpng. Apparently ldd doesn't show recursive dependencies, which surprises me. https://stackoverflow.com/questions/15064685/does-ldd-also-show-dependencies-of-dependencies/15064784#15064784

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #18

        What library was it ?

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        Tom assoT 2 Replies Last reply
        0
        • SGaistS SGaist

          What library was it ?

          Tom assoT Offline
          Tom assoT Offline
          Tom asso
          wrote on last edited by
          #19

          @SGaist - the segfault occurs when I link with /usr/local/lib/libgmt.so.6.0.0, for the Generic Mapping Tools. I built the library from source and installed on this system. Yet when I run 'ldd /usr/local/lib/libgmt.so.6.0.0' it does not display any dependency on libpng - I don't understand why...

          1 Reply Last reply
          0
          • SGaistS SGaist

            What library was it ?

            Tom assoT Offline
            Tom assoT Offline
            Tom asso
            wrote on last edited by
            #20

            @SGaist - also tried installing libgmt-dev (rather than building myself) - I get the same segfault due to "Incompatible libpng version in application and library"

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #21

              What is surprising is that you build everything with system dependencies and yet you have two different png libraries.

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              Tom assoT 2 Replies Last reply
              0
              • SGaistS SGaist

                What is surprising is that you build everything with system dependencies and yet you have two different png libraries.

                Tom assoT Offline
                Tom assoT Offline
                Tom asso
                wrote on last edited by
                #22

                @SGaist - Yes. My app is built by qtcreator as a QtQuick project. The same segfault occurs whether i build the app with distribution-provided Qt (5.9) or with offline-installer-provided Qt 5.14 (Yes, I finally figured out how to switch between those, haha). My app includes QML with a C++ singleton backend. It is the C++ backend that requires libgmt. The fault occurs when the QML attempts to open a FileDialog. If I remove the libgmt stuff from the backend, the FileDialog opens fine. Yet the backtrace doesn't show anything to do with "gmt" - how can this be? From the gdb backtrace it seems the fault happens somewhere in libgtk-3.so.0.

                
                Thread 1 "TEST4" received signal SIGSEGV, Segmentation fault.
                __longjmp_chk (env=0x0, val=1) at ../setjmp/longjmp.c:32
                32	../setjmp/longjmp.c: No such file or directory.
                (gdb) bt
                #0  0x00007ffff54f7b00 in __longjmp_chk (env=0x0, val=1)
                    at ../setjmp/longjmp.c:32
                #1  0x00007fff9b5fbc9c in  ()
                    at /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
                #2  0x00007ffff3ba02c7 in png_error (png_ptr=0x55555784b650, error_message=error_message@entry=0x7ffff4130cb8 "Incompatible libpng version in application and library") at libpng/pngerror.c:80
                #3  0x00007ffff3ba3685 in png_create_read_struct_2 (user_png_ver=0x7fff9b5fce57 "1.6.34", error_ptr=0x555557801860, error_fn=0x7fff9b5fbc50, warn_fn=0x7fff9b5fcd10, mem_ptr=0x0, malloc_fn=0x7fff9b5fc320, free_fn=0x7fff9b5fafc0)
                    at libpng/pngread.c:150
                #4  0x00007fff9b5fbefb in  ()
                    at /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
                #5  0x00007fffda7c508c in  ()
                    at /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
                #6  0x00007fffda7c5955 in gdk_pixbuf_loader_close ()
                    at /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
                #7  0x00007fffda7c220b in  ()
                    at /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
                #8  0x00007fffda7c323c in gdk_pixbuf_new_from_stream ()
                    at /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
                #9  0x00007fffdb620142 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #10 0x00007fffdb6202bb in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #11 0x00007fffdb620b46 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #12 0x00007fffdb6184b2 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #13 0x00007fffdb74eb3a in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #14 0x00007fffdb616faa in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #15 0x00007fffdb5cfbf1 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #16 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #17 0x00007fffdb60d3ca in gtk_container_propagate_draw ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #18 0x00007fffdb60d4b2 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #19 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #20 0x00007fffdb60d3ca in gtk_container_propagate_draw ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #21 0x00007fffdb60d4b2 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #22 0x00007fffdb5c0cf4 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                ---Type <return> to continue, or q <return> to quit---
                #23 0x00007fffdb61240d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #24 0x00007fffdb617063 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #25 0x00007fffdb5c3601 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #26 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #27 0x00007fffdb60d3ca in gtk_container_propagate_draw ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #28 0x00007fffdb77c1c0 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #29 0x00007fffdb61240d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #30 0x00007fffdb617063 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #31 0x00007fffdb77bd35 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #32 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #33 0x00007fffdb60d3ca in gtk_container_propagate_draw ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #34 0x00007fffdb60d4b2 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #35 0x00007fffdb5c0cf4 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #36 0x00007fffdb61240d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #37 0x00007fffdb617063 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #38 0x00007fffdb5c3601 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #39 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #40 0x00007fffdb60d3ca in gtk_container_propagate_draw ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #41 0x00007fffdb60d4b2 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #42 0x00007fffdb750fd7 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #43 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #44 0x00007fffdb60d3ca in gtk_container_propagate_draw ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #45 0x00007fffdb60d4b2 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #46 0x00007fffdb5c0cf4 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #47 0x00007fffdb61240d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #48 0x00007fffdb617063 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #49 0x00007fffdb5c3601 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #50 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #51 0x00007fffdb60d3ca in gtk_container_propagate_draw ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #52 0x00007fffdb70e820 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #53 0x00007fffdb61240d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #54 0x00007fffdb617063 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #55 0x00007fffdb70e6c1 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #56 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                ---Type <return> to continue, or q <return> to quit---
                #57 0x00007fffdb60d3ca in gtk_container_propagate_draw ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #58 0x00007fffdb60d4b2 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #59 0x00007fffdb5c0cf4 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #60 0x00007fffdb61240d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #61 0x00007fffdb617063 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #62 0x00007fffdb5c3601 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #63 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #64 0x00007fffdb60d3ca in gtk_container_propagate_draw ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #65 0x00007fffdb60d4b2 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #66 0x00007fffdb5c0cf4 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #67 0x00007fffdb61240d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #68 0x00007fffdb617063 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #69 0x00007fffdb5c3601 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #70 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #71 0x00007fffdb60d3ca in gtk_container_propagate_draw ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #72 0x00007fffdb60d4b2 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #73 0x00007fffdb5c0cf4 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #74 0x00007fffdb61240d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #75 0x00007fffdb617063 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #76 0x00007fffdb5c3601 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #77 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #78 0x00007fffdb60d3ca in gtk_container_propagate_draw ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #79 0x00007fffdb60d4b2 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #80 0x00007fffdb8346ef in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #81 0x00007fffdb8268db in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #82 0x00007fffdb82f998 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #83 0x00007fffdb6d3859 in gtk_main_do_event ()
                    at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
                #84 0x00007fffdb1e4765 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
                #85 0x00007fffdb1f47f5 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
                #86 0x00007fffdb1f59f6 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
                #87 0x00007fffdb1f5bf0 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
                #88 0x00007fffd9e0010d in g_closure_invoke ()
                    at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
                #89 0x00007fffd9e1305e in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
                ---Type <return> to continue, or q <return> to quit---
                #90 0x00007fffd9e1b715 in g_signal_emit_valist ()
                    at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
                #91 0x00007fffd9e1c12f in g_signal_emit ()
                    at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
                #92 0x00007fffdb1edac9 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
                #93 0x00007fffdb1d9080 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
                #94 0x00007fffeef14d03 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
                #95 0x00007fffeef14285 in g_main_context_dispatch ()
                    at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
                #96 0x00007fffeef14650 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
                #97 0x00007fffeef146dc in g_main_context_iteration ()
                    at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
                #98 0x00007ffff609b73c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
                    at /home/oreilly/Qt5.14.2/5.14.2/gcc_64/lib/libQt5Core.so.5
                #99 0x00007ffff6041662 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /home/oreilly/Qt5.14.2/5.14.2/gcc_64/lib/libQt5Core.so.5
                #100 0x00007ffff604a590 in QCoreApplication::exec() ()
                    at /home/oreilly/Qt5.14.2/5.14.2/gcc_64/lib/libQt5Core.so.5
                #101 0x0000555555557222 in main(int, char**) (argc=<optimized out>, argv=<optimi
                
                1 Reply Last reply
                0
                • SGaistS SGaist

                  What is surprising is that you build everything with system dependencies and yet you have two different png libraries.

                  Tom assoT Offline
                  Tom assoT Offline
                  Tom asso
                  wrote on last edited by Tom asso
                  #23

                  @SGaist - the very last call in the stack trace before the fault is from library /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so. Running ldd on that library shows dependence on libpng16.so.16. If I find 'libpng*.so*' on /usr/ I get:

                  /usr/lib/x86_64-linux-gnu/libpng16.so
                  /usr/lib/x86_64-linux-gnu/libpng16.so.16
                  /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0
                  

                  So I really don't understand the origin of the libpng version error...

                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #24

                    Can you try to use a different style ? For example the Fusion style.

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    Tom assoT 1 Reply Last reply
                    0
                    • SGaistS SGaist

                      Can you try to use a different style ? For example the Fusion style.

                      Tom assoT Offline
                      Tom assoT Offline
                      Tom asso
                      wrote on last edited by Tom asso
                      #25

                      @SGaist - I solved the problem. One of the third-party libraries (libgdal) also included source code from old libpng v1.2.56. So even though libpng v1.6 was installed, the application would find the libpng functions in that libgdal library first. That older libpng function checks to see if a newer version is installed on the system and if so prints an error message - but in this case the libpng error function pointer was corrupt for some reason (haven't solved that), hence it attempted to print "Incompatible libpng version in application and library" before the SIGSEGV.
                      gnu gdb eventually led me to discover the problem. Thanks for all your help!

                      1 Reply Last reply
                      1
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #26

                        Glad you found out and thanks for sharing !

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved