当前位置:网站首页>Install the gstreamer development dependency library to the project sysroot directory
Install the gstreamer development dependency library to the project sysroot directory
2022-07-31 07:08:00 【Technical Notes from HUI】
背景
在项目中,需要实现一个gstreamer的pipeline,依赖libgstreamer1.0和libgstapp-1.0库,Because the system isx86_64环境,需要在i386的sysrootInstall these libraries below,基于这个背景,发现通过apt安装,然后从apt安装的cache路径,Get these libraries and copy them after unpackingsysrootDirectories are very handy.
首先,设置aptWhether to keep downloaded files when installing packagesdeb包:
# 禁止保存
echo 'Binary::apt::APT::Keep-Downloaded-Packages "0";' | sudo tee /etc/apt/apt.conf.d/10apt-keep-downloads
# 允许保存
echo 'Binary::apt::APT::Keep-Downloaded-Packages "1";' | sudo tee /etc/apt/apt.conf.d/10apt-keep-downloads
Execute the second command to runapt cache保存下载的deb包.
libgstapp-1.0.so -> libgstapp-1.0.so.0.1602.0
解包libgstreamer1.0 & libgstapp-1.0
通过dpkg-deb -X 解压缩就可以看到,libgstreamer1.0的库在libgstreamer1.0-0里面,而和libgstreamer1.0-devIt contains header files,pkg-config需要的pcfiles and pointerslibgstreamer1.0-0A symbolic link to the library inside.
建一个out目录,解包libgstreamer1.0-0_1.16.2-2_i386.deb到out目录,如下:
$ dpkg -X libgstreamer1.0-0_1.16.2-2_i386.deb out
./
./usr/
./usr/lib/
./usr/lib/i386-linux-gnu/
./usr/lib/i386-linux-gnu/gstreamer-1.0/
./usr/lib/i386-linux-gnu/gstreamer-1.0/libgstcoreelements.so
./usr/lib/i386-linux-gnu/gstreamer-1.0/libgstcoretracers.so
./usr/lib/i386-linux-gnu/gstreamer1.0/
./usr/lib/i386-linux-gnu/gstreamer1.0/gstreamer-1.0/
./usr/lib/i386-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner
./usr/lib/i386-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper
./usr/lib/i386-linux-gnu/libgstbase-1.0.so.0.1602.0
./usr/lib/i386-linux-gnu/libgstcheck-1.0.so.0.1602.0
./usr/lib/i386-linux-gnu/libgstcontroller-1.0.so.0.1602.0
./usr/lib/i386-linux-gnu/libgstnet-1.0.so.0.1602.0
./usr/lib/i386-linux-gnu/libgstreamer-1.0.so.0.1602.0
# 符号链接
./usr/lib/i386-linux-gnu/libgstbase-1.0.so.0
./usr/lib/i386-linux-gnu/libgstcheck-1.0.so.0
./usr/lib/i386-linux-gnu/libgstcontroller-1.0.so.0
./usr/lib/i386-linux-gnu/libgstnet-1.0.so.0
./usr/lib/i386-linux-gnu/libgstreamer-1.0.so.0
As can be seen from this unpacked output,不带dev的debIt's all in the bagso库,包括符号链接.
再建立out-dev目录,通过dpkg-deb -X命令解包libgstreamer1.0-dev到out-dev目录:
$ dpkg-deb -X libgstreamer1.0-dev_1.16.2-2_i386.deb out-dev/
# include需要的文件
./
./usr/
./usr/bin/
./usr/bin/dh_gstscancodecs
./usr/include/
./usr/include/gstreamer-1.0/
./usr/include/gstreamer-1.0/gst/
./usr/include/gstreamer-1.0/gst/base/
./usr/include/gstreamer-1.0/gst/base/base-prelude.h
./usr/include/gstreamer-1.0/gst/base/base.h
./usr/include/gstreamer-1.0/gst/base/gstadapter.h
./usr/include/gstreamer-1.0/gst/base/gstaggregator.h
./usr/include/gstreamer-1.0/gst/base/gstbaseparse.h
./usr/include/gstreamer-1.0/gst/base/gstbasesink.h
./usr/include/gstreamer-1.0/gst/base/gstbasesrc.h
./usr/include/gstreamer-1.0/gst/base/gstbasetransform.h
./usr/include/gstreamer-1.0/gst/base/gstbitreader.h
./usr/include/gstreamer-1.0/gst/base/gstbitwriter.h
./usr/include/gstreamer-1.0/gst/base/gstbytereader.h
./usr/include/gstreamer-1.0/gst/base/gstbytewriter.h
./usr/include/gstreamer-1.0/gst/base/gstcollectpads.h
# ...
# pkg-config的pc文件
./usr/lib/
./usr/lib/i386-linux-gnu/
./usr/lib/i386-linux-gnu/gstreamer1.0/
./usr/lib/i386-linux-gnu/gstreamer1.0/gstreamer-1.0/
./usr/lib/i386-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-codec-info-1.0
./usr/lib/i386-linux-gnu/pkgconfig/
./usr/lib/i386-linux-gnu/pkgconfig/gstreamer-1.0.pc
./usr/lib/i386-linux-gnu/pkgconfig/gstreamer-base-1.0.pc
./usr/lib/i386-linux-gnu/pkgconfig/gstreamer-check-1.0.pc
./usr/lib/i386-linux-gnu/pkgconfig/gstreamer-controller-1.0.pc
./usr/lib/i386-linux-gnu/pkgconfig/gstreamer-net-1.0.pc
# These libraries are just symlinks
./usr/lib/i386-linux-gnu/libgstbase-1.0.so
./usr/lib/i386-linux-gnu/libgstcheck-1.0.so
./usr/lib/i386-linux-gnu/libgstcontroller-1.0.so
./usr/lib/i386-linux-gnu/libgstnet-1.0.so
./usr/lib/i386-linux-gnu/libgstreamer-1.0.so
Complete these verifications,We can apply this process to our environment,such as our environmentsysroot路径是./i386-sysroot/
# step 1: 安装libgstreamer1.0库
sudo apt install libgstreamer1.0-0:i386
sudo apt install libgstreamer1.0-dev:i386
cp /var/cache/apt/archives/libgstreamer1.0-0_1.16.2-2_i386.deb .
cp /var/cache/apt/archives/libgstreamer1.0-dev_1.16.2-2_i386.deb .
dpkg-deb -X libgstreamer1.0-0_1.16.2-2_i386.deb ./i386-sysroot/
dpkg-deb -X libgstreamer1.0-dev_1.16.2-2_i386.deb ./i386-sysroot/
# step 2:安装libgstreamer-plugins-base1.0库
sudo apt install libgstreamer-plugins-base1.0-0:i386
sudo apt install libgstreamer-plugins-base1.0-dev:i386
cp /var/cache/apt/archives/libgstreamer-plugins-base1.0-0_1.16.2-4ubuntu0.1_i386.deb .
cp /var/cache/apt/archives/libgstreamer-plugins-base1.0-dev_1.16.2-4ubuntu0.1_i386.deb .
dpkg-deb -X libgstreamer-plugins-base1.0-0_1.16.2-4ubuntu0.1_i386.deb ./i386-sysroot/
dpkg-deb -X libgstreamer-plugins-base1.0-dev_1.16.2-4ubuntu0.1_i386.deb ./i386-sysroot/
完成上面两个步骤,sysroot中依赖gstreamerThe development environment is configured,You can also do this if you need other dependencies.
在ubuntu上,libgstreamer1.0-0这个名字可以通过apt search获得,比如:
$ apt search gstreamer
libgstreamer1.0-0/focal,now 1.16.2-2 amd64 [installed,automatic]
Core GStreamer libraries and elements
libgstreamer1.0-dev/focal 1.16.2-2 amd64
GStreamer core development files
libgstreamer-plugins-base1.0-0/focal-updates,focal-security,now 1.16.2-4ubuntu0.1 amd64 [installed,automatic]
GStreamer libraries from the "base" set
libgstreamer-plugins-base1.0-dev/focal-updates,focal-security 1.16.2-4ubuntu0.1 amd64
GStreamer development files for libraries from the "base" set
It is added later when installingi386安装的就是32位的版本.
sudo apt install libgstreamer1.0-0:i386
sudo apt install libgstreamer1.0-dev:i386
附dpkg-deb命令解释
dpkg-deb命令是Debian Linux下的软件包管理工具,Packages can be packed and unpacked.
-X:Release the files in the package to the specified directory,And show the detailed process of releasing files
边栏推荐
猜你喜欢
随机推荐
Oracle入门 09 - Linux 文件上传与下载
网盘程序 ZFile安装
成员内部类使用方式(工作)
第十六章:构建n(5,7)阶素数幻方
什么是浮动?什么是文档流?清除浮动的几种方式及原理?什么是BFC,如何触发BFC,BFC的作用
讲解实例+详细介绍@Resource与@Autowired注解的区别(全网最全)
基本正则表达式元字符,字符,次数,锚定分组
LVM和磁盘配额
服务器和客户端信息的获取
快速傅里叶变换(FFT)
基础配置--IP地址--主机名--域名
在级联选择器,根据不会重复的字段,来获取当前的对象
Debian 10 配置网卡,DNS,IP地址
英语翻译软件-批量自动免费翻译软件支持三方接口翻译
银河麒麟服务器v10 sp1安装.net6
Oracle入门 05 - VirtualBox的虚拟机安装配置
DHCP原理与配置
Debian 10 iptables (防火墙)配置
10.0 堆体系结构概述之元空间/永久代
uni-app生命周期









