Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to link against Poppler library?
QtWS25 Last Chance

How to link against Poppler library?

Scheduled Pinned Locked Moved Unsolved General and Desktop
qt5.5.1popplerdebianlinux
15 Posts 3 Posters 7.7k Views
  • 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.
  • M Offline
    M Offline
    michaelL
    wrote on 20 Mar 2017, 13:04 last edited by A Former User
    #1

    I installed poppler and the lib files are all there but once i use it on my application i get this error:
    ->cannot find -lpoppler-qt5

    i added this in my .pro file:

    INCLUDEPATH += /usr/include/poppler/qt5
    LIBS += -L/usr/lib/ -lpoppler-qt5

    any idea?

    J 1 Reply Last reply 20 Mar 2017, 13:27
    0
    • M michaelL
      20 Mar 2017, 13:04

      I installed poppler and the lib files are all there but once i use it on my application i get this error:
      ->cannot find -lpoppler-qt5

      i added this in my .pro file:

      INCLUDEPATH += /usr/include/poppler/qt5
      LIBS += -L/usr/lib/ -lpoppler-qt5

      any idea?

      J Offline
      J Offline
      jsulm
      Lifetime Qt Champion
      wrote on 20 Mar 2017, 13:27 last edited by
      #2

      @michaelL Is libpoppler-qt5.so file in /usr/lib ?

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • M Offline
        M Offline
        michaelL
        wrote on 20 Mar 2017, 14:43 last edited by
        #3

        yes it is

        1 Reply Last reply
        0
        • M Offline
          M Offline
          michaelL
          wrote on 20 Mar 2017, 14:47 last edited by
          #4

          @jsulm the libpoppler-qt5.so is located at /usr/lib/x86_64-linux-gnu
          should i copy it to /usr/lib?

          1 Reply Last reply
          0
          • S Offline
            S Offline
            sneubert
            wrote on 20 Mar 2017, 14:48 last edited by
            #5

            So this is working for me, maybe a stupid question. but did you rerun qmake and rebuild all?
            If yes, can you post your compiler output for further investigation.

            1 Reply Last reply
            0
            • M Offline
              M Offline
              michaelL
              wrote on 20 Mar 2017, 14:54 last edited by
              #6

              @sneubert well i copy the libpopper-qt5.so to /usr/lib/ and i got this issues:
              /usr/lib//libpoppler-qt5.so: file not recognized: File format not recognized
              collect2: error: ld returned 1 exit status
              Makefile:315: recipe for target 'vasoport' failed
              make: *** [vasoport] Error 1
              15:53:36: The process "/usr/bin/make" exited with code 2.
              Error while building/deploying project vasoport (kit: Qt 5.5.1 i.MX6)
              When executing step "Make"

              1 Reply Last reply
              0
              • M Offline
                M Offline
                michaelL
                wrote on 20 Mar 2017, 14:57 last edited by
                #7

                @sneubert i remove the copied file and i get this error message after qmake->rebuild:
                lQt5SerialPort -lQt5Core -lGLESv2 -lEGL -lGAL -lpthread
                /usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lpoppler-qt5
                Makefile:315: recipe for target 'vasoport' failed
                collect2: error: ld returned 1 exit status
                make: *** [vasoport] Error 1
                15:56:14: The process "/usr/bin/make" exited with code 2.
                Error while building/deploying project vasoport (kit: Qt 5.5.1 i.MX6)
                When executing step "Make"

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  sneubert
                  wrote on 20 Mar 2017, 15:00 last edited by
                  #8

                  Ok, now i see your are building for an embedded target (i.MX6). Your poppler lib is from your host and sure for X86, you need ARM.
                  You need to get a poppler lib build matching your target, or compile poppler yourself.

                  1 Reply Last reply
                  2
                  • M Offline
                    M Offline
                    michaelL
                    wrote on 20 Mar 2017, 15:07 last edited by
                    #9

                    @sneubert thank you!
                    My ARM is also CPU is also running on debian. Where can i get poppler for ARM?
                    I found this https://archlinuxarm.org/packages/arm/poppler-qt5

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      sneubert
                      wrote on 20 Mar 2017, 15:13 last edited by
                      #10

                      Your target is running debian, just try to download the package with something like
                      sudo apt-get install libpoppler-qt5-dev on your target.
                      This should install the libraries on your target.
                      Do you use a copy of your remote target for sysroot, or nfs to access the target libs?
                      If you have a copy, just copy libpoppler-qt5 from your target to your host sysroot.

                      1 Reply Last reply
                      1
                      • M Offline
                        M Offline
                        michaelL
                        wrote on 20 Mar 2017, 15:52 last edited by
                        #11

                        @sneubert thank again! I have a copy. I install and copy the libpoppler-qt5.so file from imx6 to 0x86.
                        Now i get 379 undefined reference:
                        ......
                        /usr/lib/arm-linux-gnueabihf//libpoppler-qt5.so: undefined reference to gfree' /usr/lib/arm-linux-gnueabihf//libpoppler-qt5.so: undefined reference to PageTransition::~PageTransition()'
                        /usr/lib/arm-linux-gnueabihf//libpoppler-qt5.so: undefined reference to Dict::lookup(char const*, Object*, int)' /usr/lib/arm-linux-gnueabihf//libpoppler-qt5.so: undefined reference to GfxFont::locateFont(XRef*, bool)'
                        /usr/lib/arm-linux-gnueabihf//libpoppler-qt5.so: undefined reference to QDomNode::~QDomNode()' /usr/lib/arm-linux-gnueabihf//libpoppler-qt5.so: undefined reference to QDomNode::nextSibling() const'
                        /usr/lib/arm-linux-gnueabihf//libpoppler-qt5.so: undefined reference to PDFDoc::processLinks(OutputDev*, int)' /usr/lib/arm-linux-gnueabihf//libpoppler-qt5.so: undefined reference to OutputDev::setDefaultCTM(double*)'
                        /usr/lib/arm-linux-gnueabihf//libpoppler-qt5.so: undefined reference to `AnnotCaret::AnnotCaret(PDFDoc*, PDFRectangle*)'
                        collect2: error: ld returned 1 exit status
                        make: *** [vasoport] Error 1
                        16:50:48: The process "/usr/bin/make" exited with code 2.

                        Should i copy something else from ARM to the host pcb?

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          sneubert
                          wrote on 20 Mar 2017, 16:24 last edited by
                          #12

                          Sorry, of course you also need all the other dependencies, not just libpoppler-qt5.
                          I alway rsync the remote library and include directories to my host sysroot, rather than copy file by file, but you can always use ldd to display dependencies.
                          For example poppler on rpi yields:

                          pi@raspberrypi:/usr/lib/arm-linux-gnueabihf $ ldd libpoppler-qt5.so
                                  linux-vdso.so.1 (0x7ef8c000)
                                  /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76eb1000)
                                  libpoppler.so.46 => /usr/lib/arm-linux-gnueabihf/libpoppler.so.46 (0x76c9f000)
                                  libQt5Xml.so.5 => /usr/local/qt5pi/lib/libQt5Xml.so.5 (0x76c6f000)
                                  libQt5Widgets.so.5 => /usr/local/qt5pi/lib/libQt5Widgets.so.5 (0x7674c000)
                                  libQt5Gui.so.5 => /usr/local/qt5pi/lib/libQt5Gui.so.5 (0x762dd000)
                                  libQt5Core.so.5 => /usr/local/qt5pi/lib/libQt5Core.so.5 (0x75dc8000)
                                  libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x75ceb000)
                                  libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x75baa000)
                                  /lib/ld-linux-armhf.so.3 (0x54b19000)
                                  libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x75b7d000)
                                  liblcms2.so.2 => /usr/lib/arm-linux-gnueabihf/liblcms2.so.2 (0x75b31000)
                                  libtiff.so.5 => /usr/lib/arm-linux-gnueabihf/libtiff.so.5 (0x75ab9000)
                                  libjpeg.so.62 => /usr/lib/arm-linux-gnueabihf/libjpeg.so.62 (0x75a63000)
                                  libpng12.so.0 => /lib/arm-linux-gnueabihf/libpng12.so.0 (0x75a33000)
                                  libopenjpeg.so.5 => /usr/lib/arm-linux-gnueabihf/libopenjpeg.so.5 (0x75a04000)
                                  libfontconfig.so.1 => /usr/lib/arm-linux-gnueabihf/libfontconfig.so.1 (0x759c2000)
                                  libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0x7592a000)
                                  libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x75901000)
                                  libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x75886000)
                                  libGLESv2.so.2 => /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2 (0x75861000)
                                  libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x7583a000)
                                  libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x75826000)
                                  libgthread-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgthread-2.0.so.0 (0x75814000)
                                  libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0x75711000)
                                  librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x756fa000)
                                  liblzma.so.5 => /lib/arm-linux-gnueabihf/liblzma.so.5 (0x756d3000)
                                  libjbig.so.0 => /usr/lib/arm-linux-gnueabihf/libjbig.so.0 (0x756b6000)
                                  libexpat.so.1 => /lib/arm-linux-gnueabihf/libexpat.so.1 (0x75683000)
                                  libEGL.so => /opt/vc/lib/libEGL.so (0x7564a000)
                                  libbcm_host.so => /opt/vc/lib/libbcm_host.so (0x75624000)
                                  libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0x7560e000)
                                  libvcos.so => /opt/vc/lib/libvcos.so (0x755f4000)
                                  libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0x75580000)
                          
                          1 Reply Last reply
                          2
                          • M Offline
                            M Offline
                            michaelL
                            wrote on 21 Mar 2017, 07:32 last edited by
                            #13

                            @sneubert I did "apt-get install libpoppler-qt5-dev" on the iMx6 and i after that the iMx6 give me if i start my Qt Application:
                            symbol lookup error: /usr/local/qt5.5.1/plugins/egldeviceintegrations/libqeglfs-viv-integration.so: undefined symbol: fbGetDisplayByIndex
                            Application finished with exit code 127.

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              sneubert
                              wrote on 21 Mar 2017, 09:55 last edited by sneubert
                              #14

                              I just made a short google search onfbGetDisplayByIndex and it seems to be a quit common issue. In the search result there are many points to start.
                              Do other application without poppler, but with qt run on your iMx6?

                              1 Reply Last reply
                              0
                              • M Offline
                                M Offline
                                michaelL
                                wrote on 21 Mar 2017, 12:01 last edited by
                                #15

                                @sneubert just saw the license from poppler and i want to use a PDF viewer with LGPLV3 like QtLabs PDF module instead, so i think i will go on from there but thanks for your help

                                1 Reply Last reply
                                0

                                2/15

                                20 Mar 2017, 13:27

                                topic:navigator.unread, 13
                                • Login

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