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. Build on Linux: -qt-xcb option?
QtWS25 Last Chance

Build on Linux: -qt-xcb option?

Scheduled Pinned Locked Moved Unsolved General and Desktop
25 Posts 13 Posters 21.2k 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.
  • B Offline
    B Offline
    Bob64
    wrote on last edited by Bob64
    #1

    For the first time, I am trying to build Qt on Linux (a CentOS 7.4 system). I am working with the qt-everywhere-src-5.15.0 package.

    I'm not really a Linux guy. I do develop cross-platform code (including Qt-based code) and have done so at various times over the years but I primarily use Windows and have always worked with Qt installs that someone else has provided.

    My first build attempt appeared to succeed building but would not run. I get an error that the xcb plugin is missing and indeed the plugins/platform/libqxcb.so library is not there ( I do see this in a working 5.9.6 install that I have access to).

    Although I had tried to specify the -qt-xcb option as mentioned in the Qt build instructions, this did not appear to be recognised by configure. Certainly it is not documented in the command line help of configure. It is not clear from the documentation whether this option - even if it worked - is the recommended approach. Is there a more up to date method of specifying it perhaps, and should I be doing it.

    I also found that the clean option of configure is not recognised.

    Can the Qt documentation for building on Linux be relied upon at all? One reason I ask is that I suspect that I will need to install some packages and perhaps that is why xcb is not being built. There is a long list of required packages in the documentation but given my experience of the documentation so far I don't know how trustworthy this list is. I also have the issue of mapping this from Debian to CentOS.

    Please does anyone have straightforward instructions that don't assume too much prior knowledge, ideally for building on CentOS/RedHat-like systems?

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

      Hi,

      Did you check that you have all dependencies development packages installed ?

      The configure script outputs logs. You should check them to see why the xcb tests failed.

      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
      • B Offline
        B Offline
        Bob64
        wrote on last edited by
        #3

        Hi

        Thanks for the hints. I took a closer look at the config.log. Earlier I had mainly looked at config.summary but I didn't really know what I was looking for. Anyway in the log, the only thing that fails that explicitly mentions xcb is the following:

        looking for library xcb_icccm
        Trying source 0 (type pkgConfig) of library xcb_icccm ...
        + /usr/bin/pkg-config --exists --silence-errors xcb-icccm '>=' 0.3.9
        pkg-config did not find package.
          => source produced no result.
        Trying source 1 (type inline) of library xcb_icccm ...
        xcb/xcb_icccm.h not found in [] and global paths.
          => source produced no result.
        test config.qtbase_gui.libraries.xcb_icccm FAILED
        

        As I mentioned I wasn't sure I had all packages installed. Will the packages listed in the Qt docs for Debian have the same name in CentOS 7.4? Do I need to worry about what versions to install etc.? (Sorry I am a noob at this!)

        Going back to my original question, why doesn't configure recognise the -qt-xcb option for me - do I need to worry about that?

        1 Reply Last reply
        0
        • B Offline
          B Offline
          Bob64
          wrote on last edited by Bob64
          #4

          I have gone through the dependencies listed in the Qt doc and looked for equivalents on my system or available for installation. Most appear to be there if I ignore slight naming differences (no numbers in the CentOS package names). libxi-dev and libxkbcommon-x11-dev equivalents aren't installed but are available. However, I can't see libx11-xcb-dev or libxcb-glx0-dev.

          libfontconfig1-dev    fontconfig-devel.x86_64
          libfreetype6-dev      freetype-devel.x86_64
          libx11-dev            libX11-devel.x86_64
          libxext-dev           libXext-devel.x86_64
          libxfixes-dev         libXfixes-devel.x86_64
          libxi-dev             Not installed: libXi-devel.x86_64
          libxrender-dev        libXrender-devel.x86_64 
          libxcb1-dev           libxcb-devel.x86_64
          libx11-xcb-dev        ?
          libxcb-glx0-dev       ?
          libxkbcommon-x11-dev  Not installed: libxkbcommon-x11-devel.x86_64
          

          Note that this list is the one specified for when configuring with -qt-xcb which as I have mentioned does not work for me - gives error:

          ERROR: Invalid value given for boolean command line option 'xcb'.
          

          There are a bunch of other dependencies listed in the Qt doc for if one doesn't compile with this option. These are all of the form libxcb-<something>-dev. I can find plausible looking CentOS equivalents for <something> = keysmys1, image0, render-util0 but none of the others (including libxcb-icccm4-dev, which stands out because of the configure error relating to xcb-icccm that I mentioned earlier).

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

            From a quick search, try with "libxcbutil-icccm".

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

            B 1 Reply Last reply
            0
            • SGaistS SGaist

              From a quick search, try with "libxcbutil-icccm".

              B Offline
              B Offline
              Bob64
              wrote on last edited by
              #6

              @SGaist Thanks. It wasn't showing up as a package available for download on my machine's package manager. I did do a quick web search and I found one match but for a different CentOS version and I don't know if it was an "official" source.

              In any case, I think that package should only be needed for the non -qt-xcb case. I would still like to understand what is going on there. Is that option no longer available in configure? Is the documentation now incorrect? Has it been replaced with a different setting?

              1 Reply Last reply
              0
              • Christian EhrlicherC Online
                Christian EhrlicherC Online
                Christian Ehrlicher
                Lifetime Qt Champion
                wrote on last edited by Christian Ehrlicher
                #7

                -qt-xcb was removed from configure (and also from the documentation for 5.15 but the official site did not pick up the lastest version yet - see https://codereview.qt-project.org/c/qt/qtdoc/+/300877/3/doc/src/platforms/linux.qdoc )

                Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                Visit the Qt Academy at https://academy.qt.io/catalog

                SGaistS B 2 Replies Last reply
                2
                • Christian EhrlicherC Christian Ehrlicher

                  -qt-xcb was removed from configure (and also from the documentation for 5.15 but the official site did not pick up the lastest version yet - see https://codereview.qt-project.org/c/qt/qtdoc/+/300877/3/doc/src/platforms/linux.qdoc )

                  SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  @Christian-Ehrlicher said in Build on Linux: -qt-xcb option?:

                  -qt-xcb was removed from configure (and also from the documentation for 5.15 but the official site did not pick up the lastest version yet - see https://codereview.qt-project.org/c/qt/qtdoc/+/300877/3/doc/src/platforms/linux.qdoc )

                  Good catch, I forgot about that one.

                  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
                  • J Offline
                    J Offline
                    Joshua Fletcher
                    wrote on last edited by
                    #9

                    I'm seeing a similar problem on centOS 7.2, but I've previously installed earlier versions of Qt without a problem.
                    For me, Qt 5.15.0 seems to be installing, but the X11Extras is not, and I need the X11Extras module to install successfully.

                    looking at the logs of a successful and working Qt 5.12 installation, it mentioned iccm failures there, too, but that seemed to be inconsequential, since those installations worked for me.

                    What stands out in my case is a complete absence of any reference to render or xrender in the logs for the 5.15.0 installation.

                    When I tried "-bundled-xcb-xinput", my config.summary said this:
                    "WARNING: Feature system-xcv-xinput is insignificant in this configuration, ignoring related command line option(s)."

                    It didn't seem to make any difference.

                    As an experiment, the original poster could try installing Qt 5.14.0, to compare. I was able to install that on CentOS 7.2.
                    If that is successful, we might have the same problem, and comparing a successful 5.14 installation with a problematic 5.15 installation might help. We may both need the same solution.

                    1 Reply Last reply
                    0
                    • Christian EhrlicherC Online
                      Christian EhrlicherC Online
                      Christian Ehrlicher
                      Lifetime Qt Champion
                      wrote on last edited by
                      #10

                      @Joshua-Fletcher said in Build on Linux: -qt-xcb option?:

                      We may both need the same solution.

                      The solution is to use xcb from the distribution since it no longer is shipped with Qt.

                      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                      Visit the Qt Academy at https://academy.qt.io/catalog

                      1 Reply Last reply
                      2
                      • Christian EhrlicherC Christian Ehrlicher

                        -qt-xcb was removed from configure (and also from the documentation for 5.15 but the official site did not pick up the lastest version yet - see https://codereview.qt-project.org/c/qt/qtdoc/+/300877/3/doc/src/platforms/linux.qdoc )

                        B Offline
                        B Offline
                        Bob64
                        wrote on last edited by
                        #11

                        @Christian-Ehrlicher Thank you! That is a big help as it eliminates one of the main things that was confusing me.

                        The problem is now reduced to resolving the list of dependencies. I can't believe that if icccm (for example) is so important that it is not available more easily so I am wondering if it gets bundled with another package on CentOS. I am going to have to ask for packages to be installed as I don't have privileges at the moment, which is why it would be useful to have a definitive list of what is needed on CentOS.

                        1 Reply Last reply
                        0
                        • J Offline
                          J Offline
                          Joshua Fletcher
                          wrote on last edited by
                          #12

                          I found that ensuring these packages were installed was sufficient for my purposes:
                          libxcb-devel
                          libxkbcommon-devel
                          xcb-util-devel
                          xcb-util-image-devel
                          xcb-util-keysyms-devel
                          xcb-util-renderutil-devel
                          xcb-util-wm-devel
                          mesa-libGL-devel

                          the only one I was actually missing was: xcb-util-renderutil-devel
                          but if you can, check and make sure all those are installed, and I think it should work for you.

                          1 Reply Last reply
                          1
                          • L Offline
                            L Offline
                            ludek.vodicka
                            wrote on last edited by ludek.vodicka
                            #13

                            Hi, I just also trying to solve problems with -qt-xcb option.

                            I removed this switch and compiled the latest Qt 5.15.0. But my application didn't start with error:

                            qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
                            This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
                            Available platform plugins are: linuxfb, minimal, offscreen, vnc.

                            Directory qt\plugis\platforms contains only

                            libqlinuxfb.so
                            libqminimal.so
                            libqoffscreen.so
                            libqvnc.so

                            Thanks for any help

                            1 Reply Last reply
                            0
                            • JoeCFDJ Offline
                              JoeCFDJ Offline
                              JoeCFD
                              wrote on last edited by
                              #14

                              https://forum.qt.io/topic/93247/qt-qpa-plugin-could-not-load-the-qt-platform-plugin-xcb-in-even-though-it-was-found

                              L 1 Reply Last reply
                              0
                              • JoeCFDJ JoeCFD

                                https://forum.qt.io/topic/93247/qt-qpa-plugin-could-not-load-the-qt-platform-plugin-xcb-in-even-though-it-was-found

                                L Offline
                                L Offline
                                ludek.vodicka
                                wrote on last edited by
                                #15

                                @JoeCFD Thanks for the reply. I already saw this topic but it is a slightly different problem.

                                I do not have a message:

                                Qt platform plugin "xcb" in "" even though it was found.
                                but only
                                Qt platform plugin "xcb" in ""

                                My issue is that I don't have file libqxcb.so in Qt/plugins/platform directory at all.

                                I tried to compile it with -qt-xcb like several times before, but because this switch was removed, I tried it without that. Also, I tried "-xcb" switch too.

                                But although I have "X11 specific: XCB Xlib...yes" message during configuration, libqxcb.so file isn't created.

                                1 Reply Last reply
                                0
                                • L Offline
                                  L Offline
                                  ludek.vodicka
                                  wrote on last edited by
                                  #16

                                  Seems that adding following switches forces Qt to build libxcb.so

                                  -xcb -xcb-xlib -bundled-xcb-input

                                  (it's necessary to add all these switches based on my observations)

                                  1 Reply Last reply
                                  2
                                  • J Offline
                                    J Offline
                                    Jawsh
                                    wrote on last edited by
                                    #17

                                    @ludek-vodicka, where do you specify those options? They are not part of configure, correct?

                                    jsulmJ 1 Reply Last reply
                                    0
                                    • J Jawsh

                                      @ludek-vodicka, where do you specify those options? They are not part of configure, correct?

                                      jsulmJ Offline
                                      jsulmJ Offline
                                      jsulm
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #18

                                      @Jawsh said in Build on Linux: -qt-xcb option?:

                                      They are not part of configure

                                      They are. Call configure with -h parameter and you will see.

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

                                      J 1 Reply Last reply
                                      1
                                      • jsulmJ jsulm

                                        @Jawsh said in Build on Linux: -qt-xcb option?:

                                        They are not part of configure

                                        They are. Call configure with -h parameter and you will see.

                                        J Offline
                                        J Offline
                                        Jawsh
                                        wrote on last edited by
                                        #19

                                        Actually, if I remove bundled-xcb-input it works on configure. However, I have run into a new error: "ERROR: Feature 'xcb' was enabled, but the pre-condition 'features.thread && libs.xcb && tests.xcb_syslibs && features.xkbcommon-x11' failed." Anyone have any ideas? I have installed as many of the prerequisite libs as I could find listed.

                                        1 Reply Last reply
                                        0
                                        • J Offline
                                          J Offline
                                          Jawsh
                                          wrote on last edited by
                                          #20

                                          Found this on: https://github.com/RudolfCardinal/camcops/issues/3

                                          sudo apt-get build-dep qt5-default
                                          
                                          (having enabled "Source code" option in Software and Updates > Ubuntu Software)
                                          

                                          After I did this, deleted config.cache, and reran configure then it worked.

                                          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