创作理由:很久没更新了,最近做实践,部分更新在同名的博客了。今天实操的是安装一个能够调用GPU的API 。
编译Mesa嘛!利用Qt交叉编译,至少三个地方要移植库,交叉编译器、ubuntu和开发板根文件系统,我是开发板上有特定版本的mesa,所以想试着在ubuntu上安装对应的版本。首先我们知道:Mesa 21.3.7(或任何版本的Mesa)是一个跨平台的开源OpenGL实现,因此在源代码级别没有特定于ARM或非ARM架构的区别。然而,在编译时,需要针对目标架构(例如ARM或x86)进行特定的配置和编译过程。是不是跟OpenCV一样?果然都是Open开头的。【上面的操作都是为了在我ubuntu上搞个对应版本的,交叉编译器和开发板上一般都会有】
思路一:个人限定
在线下载网站:
进入就有两种:【依照我的开发板上已存在版本来讲】
两者区别: 后者更保全,前者较常见。
mesa-21.3.7.tar.xz:
- 文件类型:这是一个压缩文件,使用
.tar.xz
格式进行压缩。 - 内容:这个文件包含了 Mesa3D 图形库版本 21.3.7 的源代码。你可以下载这个文件,并解压缩以获取源代码,用于编译和安装
mesa-21.3.7.tar.xz.sig:
- 文件类型:这是一个数字签名文件,用于验证压缩包的完整性和来源。
- 内容:这个文件包含一个数字签名,用于验证
mesa-21.3.7.tar.xz
文件没有被篡改,并且确实是由 Mesa3D 项目的发布者签署的。
重点: 移植的时候,一定要保持符号链接
安装总步骤:
登录上述网站点击下载(我选的第一个)和安装相应的编译依赖库
tar -xvf mesa-21.3.7.tar.xz
cd mesa-21.3.7 【1】
mkdir build
cd build 【2】
meson setup --prefix=/opt/mesa .. 【3】看下面注释、很重要
ninja
sudo ninja install //接下来,你就可以移植你要的库到本地了
按照以上总步骤,就可以成功安装编译mesa(ubuntu千奇百怪的配置,也可能会有很多小伙伴,会失败,可能是各种依赖库的问题或者其他,这里我就说说我遇见的问题)说明:
【1】那里解压,就在本路径进入这个mesa进行相关编译。不要学我进入错路径了 !!!
【2】跟Opencv的编译一样,一定要进入到build文件下
【3】这里可能会出现很多问题,一般ubuntu下不会只有一个meson(ubunt会给个、你用开发板的时候交叉编译器会给、等等,所以就有环境变量等等问题 或者 要指定那个meson来编译。否则出现下图的问题)
情况一:有很多个meson。你可以设置环境变量把其他去掉。也可绝对路径。/usr/bin就是我的meson路径
/usr/bin/meson setup --prefix=/opt/mesa ..
情况二:meson版本太低,无法编译比较新的mesa。换新的呗!!!【科学上网较快】
sudo apt-get install python3-pip
sudo pip3 install meson
which -a meson //找到你刚刚新安装的,用绝对路径编译mesa
/*或者更加全面的找,范围为整个ubuntu系统*/
sudo find / -name meson 2>/dev/null
思路二:简单随机
若你比较随意:没有版本限制。可以从官方的Mesa项目页面或其他可靠的包管理器(例如apt、yum、pacman等)下载特定版本的Mesa库。
下载:
sudo apt-get update
sudo apt-get install mesa-utils
sudo apt-get install libegl1-mesa-dev libgles2-mesa-dev
查看版本:
glxinfo | grep "OpenGL version"
查找其对应共享库:
sudo ldconfig -p | grep mesa