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

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

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

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

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

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

完毕后再继续执行命令

make 
make install

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

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

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

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

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需要依赖其)

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

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

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

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

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

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

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

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

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

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

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

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

树莓派Tools交叉编译OpenGL(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 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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环境,版本如下:

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

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,成功。

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

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

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

 

 

 

上一篇:arm 函数调用


下一篇:mysql