How to restrict linking of X server libraries with an application compiled for framebuffer
Solved
Mobile and Embedded
-
I have build a Qt 5.9.1 kit for x86 in my host Ubuntu 16.04. My target system only have frame buffer and i am running it using libqlinuxfb plugin.
ldd myapplication
giveslinux-gate.so.1 => (0xb776e000) libQt5Widgets.so.5 => /opt/qt/qt5.9.1x86/lib/libQt5Widgets.so.5 (0xb705d000) libQt5Gui.so.5 => /opt/qt/qt5.9.1x86/lib/libQt5Gui.so.5 (0xb6a17000) libQt5Core.so.5 => /opt/qt/qt5.9.1x86/lib/libQt5Core.so.5 (0xb64b5000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb6324000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb6307000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6151000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6134000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb60de000) libGL.so.1 => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 (0xb606e000) libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xb6043000) libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb6028000) libicui18n.so.55 => /usr/lib/i386-linux-gnu/libicui18n.so.55 (0xb5db5000) libicuuc.so.55 => /usr/lib/i386-linux-gnu/libicuuc.so.55 (0xb5c1e000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb5c19000) libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb5af0000) /lib/ld-linux.so.2 (0x800f8000) libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xb5ac6000) libxcb-dri3.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri3.so.0 (0xb5ac2000) libxcb-present.so.0 => /usr/lib/i386-linux-gnu/libxcb-present.so.0 (0xb5abd000) libxcb-sync.so.1 => /usr/lib/i386-linux-gnu/libxcb-sync.so.1 (0xb5ab5000) libxshmfence.so.1 => /usr/lib/i386-linux-gnu/libxshmfence.so.1 (0xb5ab2000) libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xb5a96000) libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb5a81000) libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xb5a7c000) libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xb5a75000) libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xb5a72000) libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb5927000) libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xb590c000) libxcb-dri2.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri2.so.0 (0xb5905000) libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb58df000) libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xb58d8000) libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xb58c5000) libicudata.so.55 => /usr/lib/i386-linux-gnu/libicudata.so.55 (0xb400d000) libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb3f97000) libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb3f93000) libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb3f8c000)
I want to avoid X server based library linking with my application. Can anyone help me with a way out ?
Thank you for you time.
-
Hi,
What options did you pass to configure ?
-
Yes, the one you used to build your custom version of Qt.
-
From your options I don't see anywhere that you are disabling the xcb backend.
-
The application stays generic, it’s just the backend plugin loaded that changes.