概述
要使用Qt的quick相关功能则需要编译opengl
opengl使用的是mesa,其依赖 libdrm,libxcb,libudev
libxcb依赖 x11,xcb-proto
1、安装依赖
1.1、libxcb 编译
1.2 libdrm编译
下载地址 Index of /libdrm ,下载libdrm-2.4.90.tar.gz
解压:
tar -zxvf libdrm-2.4.90.tar.gz
cd libdrm-2.4.90
CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ \
./configure --prefix=/home/wyj/third_lib/drm_lib --target=arm-linux --host=arm-linux
make
make install
2、源码下载
下载地址 ftp://ftp.freedesktop.org/pub/mesa,本文下载的是mesa-12.0.0.tar.gz
3、解压
tar -zxvf mesa-12.0.0.tar.gz
cd mesa-12.0.0
4.配置
CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ \
CFLAGS+=-fPIC CXXFLAGS=-fPIC \
./configure --disable-dri3 --prefix=/home/wyj/qt-everywhere-src-5.12.10/third_lib/mesa_lib \
--target=arm-linux \
--host=arm-linux \
--enable-gles2 \
--enable-gles1 \
--disable-glx \
--enable-egl \
--enable-shared-glapi \
--with-dri-drivers=swrast \
LIBDRM_CFLAGS="-I/home/wyj/qt-everywhere-src-5.12.10/third_lib/drm_lib/include -I/home/wyj/qt-everywhere-src-5.12.10/third_lib/drm_lib/include/libdrm -I/home/wyj/qt-everywhere-src-5.12.10/third_lib/X11/include/openssl" \
LIBDRM_LIBS="-L/home/wyj/qt-everywhere-src-5.12.10/third_lib/drm_lib/lib -ldrm" \
5、编译安装
make
make install
6、编译错误解决
6.1 openssl/sha.h: No such file or directory
交叉编译openssl :参考openssl交叉编译
6.2 libudev.h: No such file or directory
eudev下载路径:https://dev.gentoo.org/~blueness/eudev/
# tar -xvf eudev-3.2.8.tar.gz
# cd eudev-3.2.8
# ./configure --prefix=/home/wyj/third_lib/X11 CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar --disable-blkid --disable-kmod
make
make install
6.3 X11/extensions/Xvlib.h : No such file or directory
下载libxv_1.0.11.orig.tar.gz ,解压到third_lib目录中,然后使用3.1.1同样的方法配置和安装libxv。在配置libxcb的过程中,会出现以下错误
./configure --prefix=$PREFIX --host=$HOST
make
make install
6.4 X11/extensions/XvMClib.h : No such file or directory
下载libxvmc_1.0.12.orig.tar.gz ,解压到third_lib目录中,然后使用3.1.1同样的方法配置和安装libxvmc。在配置libxcb的过程中,会出现以下错误
./configure --prefix=$PREFIX --host=$HOST
make
make install