opengl(mesa-12.0.0)库交叉编译

概述

要使用Qt的quick相关功能则需要编译opengl

opengl使用的是mesa,其依赖 libdrm,libxcb,libudev

libxcb依赖 x11,xcb-proto

1、安装依赖

1.1、libxcb 编译

libxcb 交叉编译_ggggyj的专栏-CSDN博客

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

猜你喜欢

转载自blog.csdn.net/ggggyj/article/details/120309678