首页 > 其他分享 >ARM平台移植ZLMediaKit

ARM平台移植ZLMediaKit

时间:2023-07-11 17:23:30浏览次数:48  
标签:gcc CMAKE x86 aarch64 64 linux ZLMediaKit ARM 移植

ZLMediaKit是一套高性能的流媒体服务框架,目前支持rtmp、rtsp、hls、http-flv等流媒体协议,支持linux、macos、windows三大PC平台和ios、android两大移动端平台。

host主机:ubuntu18.04

移植平台:rk3568

交叉编译链版本:gcc version 9.3.0

https://github.com/ZLMediaKit/ZLMediaKit

1,下载源码(github地址 GitHub - ZLMediaKit/ZLMediaKit: WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT server and client framework based on C++11)

#国内用户推荐从同步镜像网站gitee下载 
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init
2,创建cmake编译文件

在命令行执行以下命令,CMAKE_SYSTEM_NAME设置系统平台,CMAKE_SYSTEM_PROCESSOR设置处理器架构为aarch64,CMAKE_STAGING_PREFIX为安装路径,CMAKE_C_COMPILER设置gcc工具链位置,CMAKE_CXX_COMPILER设置g++工具链的位置。cat  /tmp/toolchain.cmake查看是否写入。

cat > /tmp/toolchain.cmake <<'EOT'
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR aarch64)
set(CMAKE_STAGING_PREFIX /home/bsp/rp_3568/ZLinstall)
set(CMAKE_C_COMPILER /home/bsp/rp_3568/rk3566-rk3568-linux/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/bin/aarch64-linux-gcc)
set(CMAKE_CXX_COMPILER /home/bsp/rp_3568/rk3566-rk3568-linux/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/bin/aarch64-linux-g++)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
EOT
4,cmake配置

mkdir build_arm
cd build_arm
cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/toolchain.cmake -DCMAKE_INSTALL_PREFIX=/home/bsp/rp_3568/ZLinstall ..
提示 not able to compile a simple test program,仔细看是缺少库 error while loading shared libraries: libisl.so.15: cannot open shared object file: No such file or directory。

bsp@zmjbsp:/usr/lib$ find -name "libisl.so*"
./x86_64-linux-gnu/libisl.so.19
./x86_64-linux-gnu/libisl.so.19.0.0
bsp@zmjbsp:/usr/lib$
搜索这个库,可以找到但是不是那个版本的,软链接一下

sudo ln -s /usr/lib/x86_64-linux-gnu/libisl.so.19 /usr/lib/x86_64-linux-gnu/libisl.so.15
修改后这个库好了,下面又提示 error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory,再链接一下,再cmake那条指令检查成功了。

sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4
5,编译安装

make -j4 install 


编译中报错了,/usr/local/lib/libssl.so: error adding symbols: File in wrong format,它找的是主机中的libssl.so而不是arm中的。

 在cmake时,也发现了确实是主机里的。在交叉编译链中能找到libssl.so,我们在cmake指定一下libssl.so的位置,运行后编译成功。(注意:清除一下build_arm和release里面的编译缓存)

cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/toolchain.cmake -DCMAKE_INSTALL_PREFIX=/home/bsp/rp_3568/ZLinstall -DOPENSSL_LIBRARIES=/home/bsp/rp_3568/rk3566-rk3568-linux/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/lib -DOPENSSL_ROOT_DIR=/home/bsp/rp_3568/rk3566-rk3568-linux/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu  ..


6,在板子上运行

因为是静态库编译的,只需把MediaServer这个bin文件拷贝到板子上即可。



标签:gcc,CMAKE,x86,aarch64,64,linux,ZLMediaKit,ARM,移植
From: https://www.cnblogs.com/kn-zheng/p/17545361.html

相关文章

  • linux系统安装pycharm环境
    1、安装Pycharm环境参考网站:https://www.linuxidc.com/Linux/2018-04/152003.htmwindows注册方法启动方法彻底删除方法pycharm安装后代码区不能编辑  安装pip的方法安装jango的方法      安装jango出错  解决办法延长下载时间 --default-timeout=100   ......
  • pycharm安装django失败,原因是报了一个ssl异常,也就是说和国外源站服务器ssl失败。 所
    pycharm安装django失败,原因是报了一个ssl异常,也就是说和国外源站服务器ssl失败。所以选用国内源站安装:选中Options,输入:“-ihttps://pypi.tuna.tsinghua.edu.cn/simple” ......
  • STM32:rtthread_f1移植
    本文开始移植rtthread的代码到正点原子的板子上;参考资料为野火的教程,需要搭配野火教程使用;使用源码是作为pack包放在arm-keil官网下载的nano3.0.3版本;nano版本精简方便解构;gittee上的master版本组件又多又杂不利于初学;本来想用3.1.5版本源码的,但是移植过程会有代码报错又莫名其......
  • 永磁同步电机pmsm无感foc驱动代码,启动为高频注入,平滑切入观测器高速控制,代码全部手写
    永磁同步电机pmsm无感foc驱动代码,启动为高频注入,平滑切入观测器高速控制,代码全部手写开源,可以移植到各类mcu上。附赠高频注入仿真模型ID:69100646985514964......
  • 风电分布式并网模型 Wind Farm Simulation Model。 Matlab/simulink
    风电分布式并网模型WindFarmSimulationModel。Matlab/simulink1、共2个火电厂,4个风电场,共15个节点。火电厂:1号火电厂,设定为SwingBus;2号火电厂,设定为PVBus。(在汽轮机调节器可进行调节励磁系统的控制方式)风电厂:4个风电厂;各个风电厂的风速可......
  • openharmony环境搭建
    1.源码下载1.1repo安装curl-shttps://gitee.com/oschina/repo/raw/fork_flow/repo-py3>/usr/bin/repo1.2下载openharmony源码[email protected]:openharmony/manifest.git-bOpenHarmony-4.0-Beta1--no-repo-verifyreposync-crepoforall-c'gitl......
  • windows编译ZLMediaKit(vcpkg)
    windows编译ZLMediaKit转载https://www.jianshu.com/p/f6f1c0b7e32b编译#下载ZLMediaKitgitclonehttps://gitee.com/xia-chu/ZLMediaKit.git#切换到ZLMediaKit目录cdZLMediaKit#更新子模块代码gitsubmoduleupdate--init#vcpkg安装opensslvcpkginstall--trip......
  • Armbian 安装并改为国内软件源
    Armbian是为ARM架构的单板计算机(如树莓派、NanoPi、OrangePi等)提供的开源镜像系统,它基于Debian或Ubuntu系统。在使用Armbian进行开发、调试或者部署时,由于系统默认软件源是国外的,下载速度比较慢,因此我们需要将软件源改为国内镜像站,加速软件包的下载。本文主要介绍如何......
  • 如何实现构建Java开发环境:启动pycharm的具体操作步骤
    构建Java开发环境:启动PyCharm介绍在开始教你如何构建Java开发环境并启动PyCharm之前,让我们先了解一下整个流程。下表展示了构建Java开发环境并启动PyCharm的步骤:步骤描述1下载并安装JDK2配置Java环境变量3下载并安装PyCharm4启动PyCharm现在让我们......
  • 金融时间序列预测方法合集:CNN、LSTM、随机森林、ARMA预测股票价格(适用于时序问题)、相
    金融时间序列预测方法合集:CNN、LSTM、随机森林、ARMA预测股票价格(适用于时序问题)、相似度计算、各类评判指标绘图(数学建模科研适用)1.使用CNN模型预测未来一天的股价涨跌-CNN(卷积神经网络)使用CNN模型预测未来一天的股价涨跌数据介绍open开盘价;close收盘价;high最高价low最......