当前位置:   article > 正文

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

mesa交叉编译

以下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 

完毕后再继续执行命令

  1. make
  2. make install

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

同时在~/.bashrc文件中添加如下的包路径

  1. PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/sxhlvye/xproto-7.0.23/install/lib/pkgconfig
  2. export PKG_CONFIG_PATH 

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时需要依赖它们)

如上一样,需要把此包路径添加到~/.bashrc中

  1. PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/sxhlvye/libpciaccess-0.16/install/lib/pkgconfig
  2. export PKG_CONFIG_PATH

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文件夹

这里注意你的电脑上要有python2.7的环境

 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来生效下。

  1. PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/sxhlvye/libdrm-2.4.100/install/lib/pkgconfig
  2. export PKG_CONFIG_PATH
  3. PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/sxhlvye/xcb-proto-1.6/install/lib/pkgconfig
  4. export PKG_CONFIG_PATH

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

先执行sudo apt-get install xsltproc

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-

过程中会出现如下报错:

arm-linux-gnueabihf-gcc: error: unrecognized command line option '-m64'
arm-linux-gnueabihf-gcc: error: unrecognized command line option '-m64'
make[1]: *** [Makefile:707: apps/app_rand.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:715: apps/apps.o] Error 1
make[1]: *** [Makefile:723: apps/bf_prefix.o] Error 1
可以打开Makefile文件,将其中含有的-m64字符全部删掉即可。

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

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

先执行下如下命令 apt-get install gperf,安装下gperf

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文件夹

 这边也要先安装下先行库 apt-get install libudev-dev

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

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ ../configure --prefix=/home/sxhlvye/mesa-12.0.5/install --host=arm-linux  --enable-opengl --enable-gles1 --enable-gles2 --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-12.0.5/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,成功。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/283013
推荐阅读
相关标签
  

闽ICP备14008679号