Qt5.9.7交叉编译gstreamer

到官网下载qt-everywhere-opensource-src-5.9.7.tar.xz

编译这个需要很大耐心,因为很多库要安装编译,本来想在下篇文章贴出教程,可惜我自己做的笔记,不小心被其它内容覆盖掉,恢复不回来了,泪崩~~~~

你们只要根据我给出的qmake.conf和configure配置, 去编译好各个库,就简单很多了

qmake.conf的内容如下 交叉编译器根据自己平台的而定

#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

QMAKE_LIBS+= -lffi -lz  -lorc-0.4 -lgio-2.0 -lgsttag-1.0 -lgobject-2.0  -lgmodule-2.0 -lglib-2.0 -lgstbase-1.0 -lgstreamer-1.0 -lgthread-2.0 

# modifications to g++.conf
QMAKE_CC                = arm-linux-gnueabihf-gcc -lts
QMAKE_CXX               = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK              = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++ -lts

# modifications to linux.conf
QMAKE_AR                = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY           = arm-linux-gnueabihf-objcopy
QMAKE_NM                = arm-linux-gnueabihf-nm -P
QMAKE_STRIP             = arm-linux-gnueabihf-strip
load(qt_config)

1.gstreamer1.0

gstreamer的下载路径https://gstreamer.freedesktop.org/src/
在这里插入图片描述
下载路径http://sources.webos-ports.org/ ,这个链接超多库,非常好用在这里插入图片描述在这里插入图片描述

其中QMAKE_LIBS所有引用的库都是需要编译库,有这么一些库glib ffi xml2 zlib orc ogg gstreamer1.0 gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly

首先先去编译glib ffi xml2 zlib orc ogg 这些库,这些库可以在网上找怎么去交叉编译,好多教程

其次编译gstreamer1.0库,我是参照下面那链接的(链接是gstreamer0.10的)
https://www.cnblogs.com/subo_peng/p/4689406.html

区别就是把gst-ffmepg换为了gst-libav了,下载并去交叉编译, 最好把它们都安装在同个路径下,这下只需配置一个PKG_CONFIG_PATH就好了(gstreamer1.0 gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly)

2.tslib1.4

-lts值tslib库,如果自己用不到触摸屏可以去掉,否则自己去交叉编译一个就好了,网上很多教程的

编译的时候可能会出现的一个错误 cambinfocu.cpp 513行 没有定义xxx.REGION.xxxx
根据下面来改就OK了。

#if GST_CHECK_VERSION(1,1,3)
    gpointer state = NULL;
    const GstMetaInfo *info = GST_VIDEO_REGION_OF_INTEREST_META_INFO;

    while (GstMeta *meta = gst_buffer_iterate_meta(buffer, &state)) {
        if (meta->info->api != info->api)
            continue;

        GstVideoRegionOfInterestMeta *region = reinterpret_cast<GstVideoRegionOfInterestMeta *>(meta);

        faces.append(QRect(region->x, region->y, region->w, region->h));
    }
#else
    Q_UNUSED(buffer);
#endif

配置

./configure -v \
--prefix=/home/gst-5.13.2 \
-xplatform linux-arm-gnueabi-g++ \
-sysroot /home/crj/ssd-arm-gcc/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/libc  \
-opensource \
-debug \
-strip \
-confirm-license \
-no-opengl  -gstreamer  \
-no-pch \
-shared \
-no-xcb \
-no-eglfs \
-nomake examples \
-qt-zlib \
-linuxfb  \
-I/home/tslib/include -L/home/tslib/lib \
-I/home/user/arm-alsa/include -L/home/user/arm-alsa/lib  \
-I/customer/gstreamer/include/gstreamer-1.0  -I/home/zlib-glib-ffi-xml/lib/glib/lib/glib-2.0/include  -L/customer/gstreamer/lib \
-I/home/zlib-glib-ffi-xml/lib/glib/include/glib-2.0  -L/home/zlib-glib-ffi-xml/lib/glib/lib \
-I/home/zlib-glib-ffi-xml/lib/zlib/include -L/home/zlib-glib-ffi-xml/lib/zlib/lib \
-I/home/zlib-glib-ffi-xml/lib/libffi/include  -L/home/zlib-glib-ffi-xml/lib/libffi/lib \
-I/home/zlib-glib-ffi-xml/lib/libxml/include  -L/home/zlib-glib-ffi-xml/lib/libxml/lib  \
-I/home/user/zlib-glib-ffi-xml/gstream/orc/include -L/home/user/zlib-glib-ffi-xml/gstream/orc/lib  

以上的-I -L 都是上面所说需要编译库的头文件和库的路径。
也就是gstreamer glib zlib ffi xml orc,
其中的gstreamer所有的插件我都是编译在同个目录下的

如果哪里有出错,注意看它的config.log,如果报
ERROR: Feature ‘gstreamer’ was enabled, but the pre-condition ‘features.gstreamer_1_0 || features.gstreamer_0_10’ failed.
就进入log,查找looking for library gstreamer_1_0,直接定位到错误的地方看是缺少什么头文件或缺少库或没有export PKG_CONFIG_PATH,找到问题去个个解决就好了

这是我成功的结果,希望你们也可以的
在这里插入图片描述

如果有什么问题,可以在评论下留言。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值