Built Qt6 from sources, problem with xcb plugin
-
@mnesarco said in Built Qt6 from sources, problem with xcb plugin:
XCB Xlib ............................. no
Apart from what you're saying but it looks like some of the required xcb stuff is not found.
wrote on 2 Dec 2020, 19:56 last edited by@Christian-Ehrlicher It is obvious, some xcb stuff is not found, the question is what. Because ./configure reports a lot of crap like this:
-- Found XCB: /usr/lib/x86_64-linux-gnu/libxcb.so;/usr/lib/x86_64-lin...
-
wrote on 2 Dec 2020, 20:09 last edited by
I have found CMakeError.log and CMakeOutput.log, they have a lot of things but nothing related with xcb.
-
According to the config file XCB xlib needs:
"xcb_xlib": { "label": "XCB Xlib", "test": { "main": "(void) XGetXCBConnection((Display *)0);" }, "headers": "X11/Xlib-xcb.h", "sources": [ { "type": "pkgConfig", "args": "x11-xcb" }, "-lX11-xcb" ], "use": "xcb xlib"
-
wrote on 2 Dec 2020, 20:21 last edited by
It is installed:
➜ qtbase dpkg -la | grep Xlib ii libx11-xcb-dev:amd64 2:1.6.4-3ubuntu0.3 amd64 Xlib/XCB interface library (development headers) ii libx11-xcb1:amd64 2:1.6.4-3ubuntu0.3 amd64 Xlib/XCB interface library
-
Lifetime Qt Championwrote on 2 Dec 2020, 20:27 last edited by Christian Ehrlicher 12 Feb 2020, 20:30
Try to search for some output of those values inside CMakeFiles subdir and try to compile this
#include <X11/Xlib-xcb.h> int main(int, char**) { (void) XGetXCBConnection((Display *)0); return 0; }
g++ main.cpp -lX11-xcb
-
wrote on 2 Dec 2020, 20:40 last edited by
@Christian-Ehrlicher said in Built Qt6 from sources, problem with xcb plugin:
#include <X11/Xlib-xcb.h>
int main(int, char**)
{
(void) XGetXCBConnection((Display *)0);
return 0;
}➜ test99 vi test.cpp ➜ test99 c++ test.cpp -lX11-xcb ➜ test99 ./a.out [1] 12914 segmentation fault (core dumped) ./a.out ➜ test99 It compiles, but segfault on run.
-
Doesn't matter that it does not execute - cmake only checks if it compiles and links. Sorry you have to dig though the CMakeFiles directory.
-
wrote on 2 Dec 2020, 20:50 last edited by
Apparently it was some kind of cache problem. Because I deleted the build folder, opened a new terminal a build from scratch and:
Features used by QPA backends: evdev .................................. yes libinput ............................... yes INTEGRITY HID .......................... no mtdev .................................. yes tslib .................................. no xkbcommon .............................. yes X11 specific: XLib ................................. yes XCB Xlib ............................. yes EGL on X11 ........................... yes xkbcommon-x11 ........................ yes QPA backends: DirectFB ............................... no EGLFS .................................. yes EGLFS details: EGLFS OpenWFD ........................ no EGLFS i.Mx6 .......................... no EGLFS i.Mx6 Wayland .................. no EGLFS RCAR ........................... no EGLFS EGLDevice ...................... yes EGLFS GBM ............................ no EGLFS VSP2 ........................... no EGLFS Mali ........................... no EGLFS Raspberry Pi ................... no EGLFS X11 ............................ yes LinuxFB ................................ yes VNC .................................... yes QNX: lgmon ................................ no IMF .................................. no XCB: Using system-provided xcb-xinput ..... yes Native painting (experimental) ....... no GL integrations: GLX Plugin ......................... yes XCB GLX .......................... yes EGL-X11 Plugin ..................... yes Windows: Direct 2D ............................ no Direct 2D 1.1 ........................ no DirectWrite .......................... no DirectWrite 3 ........................ no
It is building, so I will report if succeed.
-
wrote on 2 Dec 2020, 21:15 last edited by
I can confirm that it worked. So which was exactly the missing dependency I don't know. But after installing all the mentioned libraries and build from scratch on an empty build directory, it worked.
-
As the configure scripts prints at the end: if you re-run configure, you have to clean first. Otherwise you may have leftovers from your previous configure/build attempt that will make it so that not all tests are rerun.
-
I can confirm that it worked. So which was exactly the missing dependency I don't know. But after installing all the mentioned libraries and build from scratch on an empty build directory, it worked.
wrote on 15 Jan 2024, 18:13 last edited by@mnesarco I think it's worth mentioning (on an old thread) that in my case the (erroneously) missing dependencies included XCB GLX and xcb-sm (maybe others). It's important to pay careful attention to the output from
./configure
and compare.