qt5.7交叉编译gstreamer-1.0
一、交叉编译glib
1.提前需先交叉编译libffi
CC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ./configure --prefix=/home/mjl/build/libffi-3.2.1/install/arm/ --host=arm-linux-gnueabihf
2.提前需先交叉编译zlib
CC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ./configure --prefix=/home/mjl/build/zlib-1.2.8/install/arm/ --host=arm-linux-gnueabihf
3.交叉编译glib至本地
CC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ./configure --prefix=/home/mjl/build/glib-2.45.3/install/arm/ --host=arm-linux-gnueabihf LIBFFI_CFLAGS="-I/home/mjl/build/libffi-3.2.1/install/arm/lib/libffi-3.2.1/include" LIBFFI_LIBS="-lffi -L/home/mjl/build/libffi-3.-I/2.1/install/lib" ZLIB_CFLAGS="-I/home/mjl/build/zlib-1.2.8/install/arm/include" ZLIB_LIBS="-lz -L/home/mjl/build/zlib-1.2.8/install/lib" glib_cv_stack_grows=no glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes ac_cv_lib_rt_clock_gettime=no glib_cv_monotonic_clock=yes
4.checking gcc ...no (config.log libstdc++.so.6: cannot open shared object file: No such file or directory)
解决方法 sudo apt-get install lib32stdc++6 lib32z1
5.接着执行会出现clock_gettime...
看网上说,export LDFLAGS=" lrt "(不能用)
用下边的方法LDFLAGS=" -lrt "
CC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ./configure LDFLAGS=" -lrt " --prefix=/home/mjl/build/gstreamer1.0/install/arm/ --host=arm-linux-gnueabihf LIBFFI_CFLAGS="-I/home/mjl/build/libffi-3.2.1/install/arm/lib/libffi-3.2.1/include" LIBFFI_LIBS="-lffi -L/home/mjl/build/libffi-3.-I/2.1/install/lib" ZLIB_CFLAGS="-I/home/mjl/build/zlib-1.2.8/install/arm/include" ZLIB_LIBS="-lz -L/home/mjl/build/zlib-1.2.8/install/lib" glib_cv_stack_grows=no glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes ac_cv_lib_rt_clock_gettime=no glib_cv_monotonic_clock=yes
6.安装glib 时出现glib msgfmt.. no (这个问题极易出现在Ubuntu 上)
解决方案:apt-get install gettest
7.安装glib 时出现 error: Could not find a glib-genmarshal in your PATH,
解决方案:先在主机安装 apt-get install libglib2.0-dev
8.make -j 4
9.make install
10.交叉编译至树莓派
①.CC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ./configure LDFLAGS=" -lrt " --prefix=/mnt/rasp-pi-rootfs/home/mjl/build/gstreamer1.0/install/arm/ --host=arm-linux-gnueabihf LIBFFI_CFLAGS="-I/home/mjl/build/libffi-3.2.1/install/arm/lib/libffi-3.2.1/include" LIBFFI_LIBS="-lffi -L/home/mjl/build/libffi-3.-I/2.1/install/lib" ZLIB_CFLAGS="-I/home/mjl/build/zlib-1.2.8/install/arm/include" ZLIB_LIBS="-lz -L/home/mjl/build/zlib-1.2.8/install/lib" glib_cv_stack_grows=no glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes ac_cv_lib_rt_clock_gettime=no glib_cv_monotonic_clock=yes
②.make -j 4
③.make install
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
二、交叉编译gstreamer1.0
安装gstreamer-1.10.1
1.交叉编译至树莓派
①.export PKG_CONFIG_PATH=/home/mjl/build/zlib-1.2.8/install/arm/lib/pkgconfig:/mnt/rasp-pi-rootfs/home/mjl/build/gstreamer1.0/install/arm/lib/pkgconfig:/home/mjl/build/libxml2-2.6.26/install/arm/lib/pkgconfig:$PKG_CONFIG_PATH
②.CC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ./configure --prefix=/mnt/rasp-pi-rootfs/home/mjl/build/gstreamer1.0/install/arm/ --host=arm-linux-gnueabihf --disable-registry --disable-loadsave --disable-gtk-doc ac_cv_func_register_printf_function=no --disable-tests --disable-valgrind --disable-debug --disable-gst-debug
3.提示缺少什安装什么
4.cannot find -lgobject-2.0 lgmodule-2.0 lglib-2.0
解决办法:export PKG_CONFIG_PATH=/home/mjl/build/glib-2.45.3/install/arm/lib/pkgconfig:$PKG_CONFIG_PATH
5.warning: libgstbase-1.0.so.0, needed by ../../libs/gst/net/.libs/libgstnet-1.0.so, not found
解决办法,查找sudo find / -name libgstnet-1.0.so
我的在之前安装的地方,/home/mjl/build/gstreamer-1.10.0/libs/gst/net/.libs/libgstnet-1.0.so
cd /home/mjl/build/gstreamer-1.10.0/libs/gst/base/.libs
cp libgstbase-1.0.so libgstbase-1.0.so.0 libgstbase-1.0.so.0.1000.0 /home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf
重新./configure
6.make -j 4
7.sudo make install
8.交叉编译至本地
①export PKG_CONFIG_PATH=/home/mjl/build/zlib-1.2.8/install/arm/lib/pkgconfig:/home/mjl/build/gstreamer1.0/install/arm/lib/pkgconfig:/home/mjl/build/libxml2-2.6.26/install/arm/lib/pkgconfig:$PKG_CONFIG_PATH
②CC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ./configure --prefix=/home/mjl/build/gstreamer1.0/install/arm/ --host=arm-linux-gnueabihf --disable-registry --disable-loadsave --disable-gtk-doc ac_cv_func_register_printf_function=no --disable-tests --disable-valgrind --disable-debug --disable-gst-debug
③make -j 4
④sudo make install
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
三、交叉编译gst-plugins-base
1.交叉编译至树莓派
①.export PKG_CONFIG_PATH=/home/mjl/build/zlib-1.2.8/install/arm/lib/pkgconfig:/mnt/rasp-pi-rootfs/home/mjl/build/gstreamer1.0/install/arm/lib/pkgconfig:$PKG_CONFIG_PATH
②CC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ./configure --prefix=/mnt/rasp-pi-rootfs/home/mjl/build/gstreamer1.0/install/arm/ --host=arm-linux-gnueabihf --disable-valgrind --disable-x --disable-gnome_vfs --disable-alsa --disable-ogg --disable-pango --disable-theora --disable-vorbis --disable-examples
③make -j 4
④sudo make install
2.交叉编译至本地
①.export PKG_CONFIG_PATH=/home/mjl/build/zlib-1.2.8/install/arm/lib/pkgconfig://home/mjl/build/gstreamer1.0/install/arm/lib/pkgconfig:$PKG_CONFIG_PATH
②CC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ./configure --prefix=/home/mjl/build/gstreamer1.0/install/arm/ --host=arm-linux-gnueabihf --disable-valgrind --disable-x --disable-gnome_vfs --disable-alsa --disable-ogg --disable-pango --disable-theora --disable-vorbis --disable-examples
③make -j 4
④sudo make install
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
四、交叉编译gst-plugins-good
1.交叉编译至树莓派
①export PKG_CONFIG_PATH=/home/mjl/build/zlib-1.2.8/install/arm/lib/pkgconfig:/mnt/rasp-pi-rootfs/home/mjl/build/gstreamer1.0/install/arm/lib/pkgconfig:$PKG_CONFIG_PATH
②CC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ./configure --prefix=/mnt/rasp-pi-rootfs/home/mjl/build/gstreamer1.0/install/arm/ --host=arm-linux-gnueabihf -disable-x --disable-xshm --disable-cairo --disable-xvideo --disable-esd --disable-shout2 --disable-gconf --disable-gdk_pixbuf --disable-hal --disable-libpng --disable-oss --disable-oss4
③make -j 4
④sudo make install
2.交叉编译至本地
①export PKG_CONFIG_PATH=/home/mjl/build/zlib-1.2.8/install/arm/lib/pkgconfig:/home/mjl/build/gstreamer1.0/install/arm/lib/pkgconfig:$PKG_CONFIG_PATH
②CC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ./configure --prefix=/home/mjl/build/gstreamer1.0/install/arm/ --host=arm-linux-gnueabihf -disable-x --disable-xshm --disable-cairo --disable-xvideo --disable-esd --disable-shout2 --disable-gconf --disable-gdk_pixbuf --disable-hal --disable-libpng --disable-oss --disable-oss4
③make -j 4
④sudo make install
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
五、交叉编译qt5
1.mkdir /mnt/rasp-pi-rootfs
2.sudo mount -o loop,offset=70254592 2016-11-25-raspbian-jessie.img /mnt/rasp-pi-rootfs
3.当挂载完成后,请进入cd /mnt/rasp-pi-rootfs/usr/lib/arm-linux-gnueabihf/查看两个so文件,命令ls -l libdl.so 和ls -l libm.so,看清其指向的文件是否如lrwxrwxrwx 1 root root 13 Jan 10 15:30 libdl.so -> libdl-2.19.so ,如果不是,先删除原来的软连接(sudo rm libdl.so),执行sudo ln -s libdl-2.19.so libdl.so(重新建立软连接),如果arm-linux-gnueabihf文件夹下不存在libdl-2.19.so,看看刚才ls命令其指向的文件在哪(或者sudo find /mnt/rasp-pi-rootfs -name libdl-2.19.so我的是在/mnt/rasp-pi-rootfs/lib/arm-linux-gnueabihf/下),拷贝至此(/mnt/rasp-pi-rootfs/usr/lib/arm-linux-gnueabihf)即可,执行sudo ln -s libdl-2.19.so libdl.so,对于libm同样操作,原因:防止出现:undefined reference to `__dlopen’等问题,参照http://blog.csdn.net/scylhy/article/details/52818779。
4.cd ~/opt/cross-compile-tools
5.sudo ./fixQualifiedLibraryPaths /mnt/rasp-pi-rootfs/ ~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc
6.export PKG_CONFIG_PATH=/home/mjl/build/gstreamer1.0/install/arm/lib/pkgconfig:$PKG_CONFIG_PATH
(本地和树莓派各有一个gstreamer1.0,因为如果本地没有的话,export pkgconfig无法识别,如果树莓派没有的话,因为sysroot 前缀,导致其编译时候找不到本地文件(会多了前缀),如果去掉sysroot的话,许多自带的库无法使用,如egl等等,所以折中的办法是树莓派和本地的gstreamer1.0各编译一次)
7.cd ~/opt/qt-everywhere-opensource-src-5.7.1/qtbase
8../configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5pi -hostprefix /usr/local/qt5pi -gstreamer 1.0 -v
0.make -j 4
10.sudo make install
11.cd ~/opt/qt-everywhere-opensource-src-5.7.1/
12.执行如下命令
for MODULE in qtimageformats qtsvg qtscript qtxmlpatterns qtdeclarative qtsensors qt3d qtgraphicaleffects qtlocation ; do cd $MODULE; /usr/local/qt5pi/bin/qmake .; make -j4; sudo make install; cd ..; done
13. cd~/opt/
14.sync; sudo umount /mnt/rasp-pi-rootfs (取消挂载)
15.sudo dd bs=1M if=2016-11-25-raspbian-jessie.img of=/dev/sdb; sync (烧录至内存卡)(看清of后的地址,可用命令fdisk -l 查看,我就是直接用的sdb,然后系统都没了,要不然也没机会再熟悉一遍,也没机会把经验总结一下--!)
到此就完成了交叉编译的环境配置,其他配置参照我之前的交叉编译的文章。
16.声明一下,因为树莓派板子烧了也不确定,交叉编译的gstreamer1.0能不能使用,等我新板子回来我再验证一下。
17.其实我觉得如果嫌交叉编译麻烦,可以在树莓派上安装gstreamer及gst-plugins-..然后交叉编译qt5.7时,export PKG_CONFIG_PATH=...,其实我有多少次都有种使用此种方法的冲动,但是不服输的心态让我觉得明知山有虎偏向虎山行!
引用链接:http://blog.csdn.net/water_cow/article/details/8728111
http://blog.csdn.NET/water_cow/article/details/8728216
http://blog.csdn.Net/xueyeguiren8/article/details/54345013
http://blog.csdn.net/xueyeguiren8/article/details/54894004
qt5.7交叉编译gstreamer-1.0的更多相关文章
- GStreamer 1.0 series序列示例
GStreamer 1.0 series序列示例 OpenEmbedded layer for GStreamer 1.0 这layer层为GStreamer 1.0框架提供了非官方的支持,用于Ope ...
- QT5.7交叉编译安装到arm(好多系列文章)
以下采用的系统为ubuntu16.04,开发板为迅为iTOP4412,4.3寸屏. 下载qt5.7源码qt-everywhere-opensource-src-5.7.0.tar.xz http:// ...
- ubuntu16.04 18.04 Qt5.11安装Gstreamer
最近因为要做跨平台的视频传输,需要用到linux的解码器,真的是搞死我了 大概讲一下我现在的平台是ubuntu16.04 Qt5.11 ,我现在需要在我的程序中使用视频这一块,无奈linux中,Qt支 ...
- vs2013+qt5.3.2+pcl1.8.0+osg2.3开发环境配置
一.安装vs2013 注意:最好安装VS2013 Update 5,不然有些项目会报莫名其妙的异常. VS2013 Update 5下载:https://pan.baidu.com/s/1TAU5Qi ...
- 交叉编译Python-3.6.0到aarch64/aarch32 —— 支持sqlite3
参考 https://datko.net/2013/05/10/cross-compiling-python-3-3-1-for-beaglebone-arm-angstrom/ 平台 主机: ubu ...
- 树莓派 Qt5.7交叉编译
一.准备软件 1.2016-11-25-raspbian-jessie.img(官网下载) 2.cross-compile-tools-master.zip 3.gcc-4.7-li ...
- ffmpeg 交叉编译 版本4.0.4
touch run.sh chmod 755 run.sh ./run.sh run.sh #!/bin/sh ./configure \ --arch=aarch64 \ --cpu=armv8-a ...
- linux下编译qt5.6.0静态库——configure配置
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
随机推荐
- 【BZOJ 1033】 [ZJOI2008]杀蚂蚁antbuster(判断线段是否和圆相交)
[题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1033 [题意] https://www.zybuluo.com/Jerusalem/n ...
- 全分布式的Hadoop初体验
背景 之前的时间里对 Hadoop 的使用都是基于学长所搭建起的实验环境的,没有完整的自己部署和维护过,最近抽时间初体验了在集群环境下装机.配置.运行的全过程,梳理总结到本文中. 配置 内存:8G C ...
- numpy 代码优化(一)—— 常见手段
选择使用 numpy 库的应有之义就在于:应当以矢量化的方式(vectorized operations)来避免迭代操作(iterations),numpy 下的迭代操作执行起来十分耗时. impor ...
- VS2010设置VC6的字体样式及背景色、选中字高亮
习惯了VC6.0的fixedsys字体,用VS2010还真不习惯.把VS2010打造成经典的.熟悉的模样,也并非难事.网上有相应的文章,我再记录下来,主要是为了自己查找方便(刚刚重装了系统,一切从头再 ...
- Visual Studio Code同时debug多种代码的方式
今天看了一下,猜应该是configurations里面多写一个就行,试了下,真的可以同时debug Python和Go代码. 可以打断点.单步执行Python和Go代码. launch.json 如下 ...
- ASP.NET Core Identity 框架 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Identity 框架 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 框架 前面我们使用了 N 多个章节, ...
- 极简代码(八)—— binary activation function
二值化的激活函数: x > 1 ? 1 : -1; ⇒ [1, -1]; x = 0 ⇒ -1; 当然也可以使用sign() 函数(求符号函数): sign(x) % 但要注意的是,sign(0 ...
- matlab 正态分布相关 API
randn:标准正太分布(μ=0,σ=1) normrnd:正态分布随机数,(需要手动指定 μ,σ,二者均是标量) mvnrnd:多变量正态分布随机数,(需要手动指定 μ,σ(二者为向量))
- WPF-3D动效-文字球形环绕
原文:WPF-3D动效-文字球形环绕 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013224722/article/details/81784 ...
- 微信小程序特殊效果合集
微信小程序的开发并不难,但是有时我们想做出比较炫的效果,可能会一时没有思路或找不到方法.下面就整理了微信小程序的一些特殊效果的案例,均来自网络,供你参考. 1.文字跑马灯效果:http://www.w ...