Unsolved -qt-xcb failure
-
.configure :
.......
-qt-xcb
XLib auto-detection... ()
/usr/local/arm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-g++ -c -pipe -O2 -Wall -W -fPIE -I../../../mkspecs/linux-arm-gnueabi-g++ -I. -o xlib.o xlib.cpp
xlib.cpp:42:22: fatal error: X11/Xlib.h: No such file or directory
#include <X11/Xlib.h>
^
compilation terminated.
make: *** [xlib.o] Error 1
XLib disabled.
xcb auto-detection... ()
/usr/local/arm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-g++ -c -pipe -O2 -Wall -W -fPIE -I../../../mkspecs/linux-arm-gnueabi-g++ -I. -o xcb.o xcb.cpp
xcb.cpp:42:21: fatal error: xcb/xcb.h: No such file or directory
#include <xcb/xcb.h>
^
compilation terminated.
make: *** [xcb.o] Error 1
xcb disabled.
The test for linking against libxcb failed!
You might need to install dependency packages for libxcb.
See src/plugins/platforms/xcb/README.who can help me ?
-
@The-most-recent-future You need to install X11 dev packages for your target
-
x11 ? thanks, I try it
-
@jsulm
sudo apt-get install libX11-dev libXext-dev libXtst-dev libXrender-dev libxmu-dev libxmuu-devunsolved !, unsolved .
not worked ! -
@jsulm
how install x11 in ubuntu 14 ?? -
@The-most-recent-future You need those header files in the sysroot for your target device, not your host PC.
-
@jsulm
thanks , but I do not know those,
could you help find some URL LINK ?
谢谢! -
@The-most-recent-future How do you cross compile? Do you have a sysroot?
-
@jsulm
not sysroot, I do not known what is sysroot, wuwuwuwu.......... crying (),
my cross compile :
/usr/local/arm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/xxxxxxxx-xx-x-xx -
@The-most-recent-future You need a sysroot if you want to cross compile.
A sysroot is basically the file system of your target device. It is needed to find the header files and libraries for the target.
You should read https://wiki.qt.io/RaspberryPi_Beginners_Guide -
@jsulm
thanks , a very nice topic !
but ,Look complicated
now,I just want to install X11, so that the errors of -qt-xcb disappear
-
@jsulm
Requires libxcb >= 1.5.PACKAGE DEPENDENCIES
Required packages:
libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm1 libxcb-icccm1-dev libxcb-sync0 libxcb-sync0-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-glx0-devOn Ubuntu 11.10 icccm1 is replaced by icccm4 and xcb-render-util is not available:
libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync0 libxcb-sync0-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-glx0-dev
The packages for xcb-render-util can be installed manually from http://packages.ubuntu.com/natty/libxcb-render-util0 and http://packages.ubuntu.com/natty/libxcb-render-util0-devOn Ubuntu 12.04 icccm1 is replaced by icccm4 and xcb-render-util can be installed automatically:
libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync0 libxcb-sync0-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-glx0-devI have all these libraries installed, why also wrong. ???
-
@The-most-recent-future AGAIN: you are cross compiling! That means: you need that X11 stuff for your TARGET DEVICE not your development PC! It doesn't matter what you installed on your PC. What you install on your PC cannot be used on your target device (logical isn't it?). That's why I said you should read that link. You need to learn how cross compilation works if you want to cross compile, else you will not succeed.
One of the basic techniques for cross compilation is the sysroot, which contains all needed header files and libraries for the target device. -
@The-most-recent-future What is your target device?
-
, touchscreen . a touchscreen , arm board. samsung soc.
-
@The-most-recent-future You need to get a sysroot for it. How, depends on the provider of your device.
-
Hi,
As alternative, you can use Qt's bundled xcb. Pass the
-qt-xcb
parameter to your configure call. -
@jsulm
thanks !QT document is say install xcb, xcb is the same for x 11 ?
-
owowwo ! ~~how to do ? how to do?~~
-
@SGaist
how to do ? please help me , thanks