Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-82907

statically build GUI application requires dynamic xcb libraries

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • Not Evaluated
    • None
    • 5.15
    • Build System
    • None
    • Ubuntu 18.04 LTS 64 bit

    Description

      1. Build Qt statically.
        My configure switches are in the attached config.opt.
      2. Build a Qt GUI application with this Qt build.
        Anything using a QApplication will do.
      3. Run ldd on the resulting executable.
        It will require many dynamic xcb-libraries:
        	linux-vdso.so.1 (0x00007ffe7e5e2000)
        	libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f1bd9344000)
        	libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f1bd9090000)
        	libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f1bd8e43000)
        	libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f1bd8c41000)
        	libxcb-icccm.so.4 => /usr/lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007f1bd8a3c000)
        	libxcb-image.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-image.so.0 (0x00007f1bd8837000)
        	libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f1bd8634000)
        	libxcb-keysyms.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-keysyms.so.1 (0x00007f1bd8431000)
        	libxcb-randr.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0 (0x00007f1bd8221000)
        	libxcb-render-util.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render-util.so.0 (0x00007f1bd801d000)
        	libxcb-render.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f1bd7e10000)
        	libxcb-shape.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shape.so.0 (0x00007f1bd7c0c000)
        	libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f1bd7a05000)
        	libxcb-xfixes.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007f1bd77fd000)
        	libxcb-xinerama.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 (0x00007f1bd75fa000)
        	libxcb-xkb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-xkb.so.1 (0x00007f1bd73de000)
        	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f1bd71b6000)
        	libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f1bd6fa4000)
        	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f1bd6c6c000)
        	libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007f1bd6a64000)
        	libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007f1bd6849000)
        	libxkbcommon-x11.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 (0x00007f1bd6641000)
        	libxkbcommon.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007f1bd6402000)
        	libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f1bd619a000)
        	libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f1bd5f68000)
        	libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f1bd5cca000)
        	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1bd592c000)
        	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1bd570f000)
        	libicui18n.so.60 => /usr/lib/x86_64-linux-gnu/libicui18n.so.60 (0x00007f1bd526e000)
        	libicuuc.so.60 => /usr/lib/x86_64-linux-gnu/libicuuc.so.60 (0x00007f1bd4eb7000)
        	libicudata.so.60 => /usr/lib/x86_64-linux-gnu/libicudata.so.60 (0x00007f1bd330e000)
        	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1bd310a000)
        	libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f1bd2f08000)
        	libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f1bd2bf1000)
        	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1bd29d2000)
        	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1bd2649000)
        	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1bd2431000)
        	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1bd2040000)
        	/lib64/ld-linux-x86-64.so.2 (0x00007f1bd9589000)
        	libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f1bd1e0e000)
        	libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f1bd1b8a000)
        	libxcb-util.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-util.so.1 (0x00007f1bd1984000)
        	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1bd1780000)
        	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1bd157a000)
        	libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f1bd1373000)
        	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f1bd115e000)
        	libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f1bd0f31000)
        	libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f1bd0cbf000)
        	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f1bd0ab7000)
        	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f1bd0891000)
        	liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f1bd0675000)
        	libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f1bd0359000)
        	libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f1bd0144000)
        
      4. Remove one of these libraries, e.g. libX11-xcb.so.1
        The QApplication won't start.

      Is there a way to build an executable using a QApplication without the run-time dependency to xcb? I need an application that can be moved to a different environment where xcb is not available.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              jbornema Joerg Bornemann
              rlohning Robert Löhning
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes