ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

树莓派Tools交叉编译OpenGL(mesa-12.0.5)

2021-12-21 23:30:17  阅读:444  来源: 互联网

标签:树莓 OpenGL -- 12.0 install linux home sxhlvye arm


以下shell命令都是在root权限下执行的。得按照顺序来,不然会报找不到包或者一些文件找不到这些话,交叉编译玩多了,自己翻来覆去,整多了后其实也就融会贯通了,有耐心就行。宗旨就是你得让它们找到的到对应文件。一般要么在环境变量里去pkg-config的库文件路径,要么就是在configure时指定下CPPFLAGS、LDFLAGS路径。要么提前aptitude install一些库。

由于博主是在做一个体系 的介绍,如果想要知道前情(一些配置环境)可以自行去主页查找之前的博客。下面的博客含有了树莓派交叉工具链的配置以及一些使用。

Ubuntu20.04下交叉编译树莓派能运行的c++程序(不含第三方库)_jiugeshao的专栏-CSDN博客

Ubuntu交叉编译含有Opencv功能的程序并在树莓派上执行_jiugeshao的专栏-CSDN博客

此外要说明的是,这篇博客写完,接下来的一篇博客就会用此编译出来的OpenGL再去关联交叉编译QT。

1. 下aptitude下面的一个包

aptitude install xutils-dev

2. 下载xproto-7.0.23源码,博主解压缩到了Home目录下,并新建了一个build和install文件夹

进入到build目录下后,执行如下命令交叉编译

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ ../configure --prefix=/home/sxhlvye/xproto-7.0.23/install --host=arm-linux 

完毕后再继续执行命令

make 
make install

可以看到install文件夹下就出现了编译好后的文件(接下来的libxua交叉编译时需要依赖如下的文件)

3. 下载libXau-1.0.7源码,博主解压缩到Home目录下,同样并新建了一个build和install的文件夹

cd到build目录下后,执行如下命令

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ ../configure --prefix=/home/sxhlvye/libXau-1.0.7/install --host=arm-linux CPPFLAGS="-I/home/sxhlvye/xproto-7.0.23/install/include" LDFLAGS="-L/home/sxhlvye/xproto-7.0.23/install/lib"

再分别执行make和make install指令,成功后可以看到install目录下有了编译好后的文件(接下来的交叉编译libxcb需要依赖其)

4. 下载libpciaccess-0.16源码,博主依然解压缩到home目录下,并新建了build和install文件夹

cd到build目录下 ,执行如下命令

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ ../configure --prefix=/home/sxhlvye/libpciaccess-0.16/install --host=arm-linux

完毕后再执行make和make install,可以看到成功获得所需要的的文件(后面交叉编译libdrm-2.4.100时需要依赖它们)

5. 下载源码libdrm-2.4.100,博主依然解压缩到home目录下,并新建了build和install文件夹

cd到build目录下 ,执行如下命令

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ ../configure --prefix=/home/sxhlvye/libdrm-2.4.100/install --host=arm-linux --disable-cairo-tests --enable-intel CPPFLAGS="-I/home/sxhlvye/libpciaccess-0.16/install/include" LDFLAGS="-L/home/sxhlvye/libpciaccess-0.16/install/lib"

 完毕后再执行make和make install,可以看到成功获得所需要的的文件(后面交叉编译mesa-12.0.5时需要依赖它们)

6. 下载源码xcb-proto-1.6源码,博主依然解压缩到home目录下,并新建了build和install文件夹

 cd到build目录下 ,执行如下命令

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ ../configure --prefix=/home/sxhlvye/xcb-proto-1.6/install --host=arm-linux

 完毕后再执行make和make install,可以看到成功获得所需要的的文件(后面交叉编译mesa-12.0.5时需要依赖它们)

 这边需要注意,在~/.bashrc里需要将 上面两个包的pc文件添加到PKG-CONFIG路径中,完毕后记得输入source ~/.bashrc来生效下。

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/sxhlvye/libdrm-2.4.100/install/lib/pkgconfig
export PKG_CONFIG_PATH 

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/sxhlvye/xcb-proto-1.6/install/lib/pkgconfig
export PKG_CONFIG_PATH 

7. 下载libxcb-1.5源码博主依然解压缩到home目录下,也新建了build和install文件夹

cd到build目录下 ,执行如下命令

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ ../configure --prefix=/home/sxhlvye/libxcb-1.5/install --host=arm-linux CPPFLAGS="-I/home/sxhlvye/libXau-1.0.7/install/include -I/home/sxhlvye/xproto-7.0.23/install/include" LDFLAGS="-L/home/sxhlvye/libXau-1.0.7/install/lib -L/home/sxhlvye/xproto-7.0.23/install/lib"

完毕后再执行make和make install,可以看到成功获得所需要的的文件(后面交叉编译mesa-12.0.5时需要依赖它们)

8. 下载libxshmfence-1.3源码,博主依然解压缩到home目录下,并新建了build和install文件夹

cd到build目下后,执行如下命令,命令中用到了前面(2)中的文件

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ ../configure --prefix=/home/sxhlvye/libxshmfence-1.3/install --host=arm-linux CPPFLAGS="-I/home/sxhlvye/xproto-7.0.23/install/include" LDFLAGS="-L/home/sxhlvye/xproto-7.0.23/install/lib"

完毕后再执行make和make install,可以看到成功获得所需要的的文件(后面交叉编译mesa-12.0.5时需要依赖它们)

9. 下载expat-2.2.7源码,博主依然解压缩到home目录下,并新建了build和install文件夹

cd到build目下后,执行如下命令

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ ../configure --prefix=/home/sxhlvye/expat-2.2.7//install --host=arm-linux 

完毕后再执行make和make install,可以看到成功获得所需要的的文件(后面交叉编译mesa-12.0.5时需要依赖它们)

10. 下载openssl-OpenSSL_1_1_1-stable源码包,博主依然解压缩到home目录下,并新建了build和install文件夹

cd到build目下后,执行如下命令(注意这条命令格式和其它不太一样

../config no-asm --prefix=/home/sxhlvye/openssl-OpenSSL_1_1_1-stable/install --cross-compile-prefix=arm-linux-gnueabihf-

 完毕后再执行make和make install,可以看到成功获得所需要的的文件(后面交叉编译mesa-12.0.5时需要依赖它们)

11. 下载eudev-3.2.5源码,博主依然解压缩到home目录下,并新建了build和install文件夹

cd到build目下后,执行如下命令

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ ../configure --prefix=/home/sxhlvye/eudev-3.2.5/install --host=arm-linux  --disable-selinux  --disable-blkid

 完毕后再执行make和make install,可以看到成功获得所需要的的文件(后面交叉编译mesa-12.0.5时需要依赖它们) 

至此对于博主的环境,已经准备好交叉编译mesa-12.0.5所需要的第三方库,毕竟每个人电脑配置不一样,一些其它问题,还需要自己发挥聪明才智去解决,注意躲用configure所带的help命令。

12. 下载mesa-12.0.5,博主依然解压缩到home目录下,并新建了build和install文件夹

cd到build目下后,执行如下命令

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ ../configure --prefix=/home/sxhlvye/mesa-12.0.5/install --host=arm-linux --disable-cairo-tests --disable-dri3  --disable-glx --disable-egl --enable-intel CPPFLAGS="-I/home/sxhlvye/libpciaccess-0.16/install/include -I/home/sxhlvye/eudev-3.2.5/install/include -I/home/sxhlvye/expat-2.2.7/install/include -I/home/sxhlvye/libxshmfence-1.3/install/include -I/home/sxhlvye/xproto-7.0.23/install/include -I/home/sxhlvye/libxcb-1.5/install/include -I/home/sxhlvye/openssl-OpenSSL_1_1_1-stable/install/include" LDFLAGS="-L/home/sxhlvye/libpciaccess-0.16/install/lib -L/home/sxhlvye/eudev-3.2.5/install/lib -L/home/sxhlvye/expat-2.2.7/install/lib -L/home/sxhlvye/libxshmfence-1.3/install/lib -L/home/sxhlvye/xproto-7.0.23/install/lib -L/home/sxhlvye/libxcb-1.5/install/lib -L/home/sxhlvye/openssl-OpenSSL_1_1_1-stable/install/lib"

make过程中出现的如下报错信息:

 /usr/bin/env: ‘python’: No such file or directory
make[1]: *** [Makefile:1160: git_sha1.h] Error 127
make[1]: Leaving directory '/home/sxhlvye/mesa-18.1.0-rc1/build/src'
make: *** [Makefile:676: all-recursive] Error 1

博主已经有了python3环境,版本如下:

Can't find Python when building Qt from sources - Stack Overflow

可参照上面的解决方案,执行下面的命令(博主python3软链接的版本就是3.8),所以直接执行了如下了命令。

sudo cp /usr/bin/python3 /usr/bin/python

再次执行make和make install,成功。

 

 

 

标签:树莓,OpenGL,--,12.0,install,linux,home,sxhlvye,arm
来源: https://blog.csdn.net/jiugeshao/article/details/122075361

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有