使用ndk20/cmake编译android平台上使用的mpp动态库

mpp 介绍

mpp全称(Media Process Platform)是屏蔽了不同操作系统和不同芯片平台(瑞芯微,海思等)的差异的一层c接口。能调用APU(视频处理芯片)的强大编解码和视频处理能力。
顺便提一下:libvpu.so 库是用来与 librk_vpuapi.so 配合进行前向兼容,以支持旧的 API。
现在推荐使用 mpp 库处理,默认就是硬编码,mpp 里没有软件编码实现。放心大胆使用。

编译mpp库的目的

Firefly(飞凌,风火轮,萤火虫)工控板上安装有Android系统,公司需要开发一套适用与该平台的推流器。使用CPU编解码性能台低了,GPU性能也有限,只好使用APU.

问:为什么使用ndk20编译呢。
答因为我司项目使用的ndk版本就在18以上,在使用官方Android demo时编译不过。需要重编译。

编译工具

编译环境:ubuntu 16
编译工具:ndk r20
cmake:版本 3.10.2,其实只要3.6.0以上都可以,但也别太高
mpp 源码:源码地址:https://github.com/rockchip-linux/mpp.git

升级cmake

Ubuntu默认apt安装的cmake版本为3.5.1.可以自己升级安装为更高版本。
步骤推荐这篇博客:Ubuntu16.04 升级cmake

开始编译mpp库

编译脚本说明:
在这里插入图片描述

在这里插入图片描述
注意在12行 source “…/env_setup.sh” 这里引用了上级目录中的env_setup.sh.主要是根据ndk版本设置一些变量的路径,脚本阅读不算很难,可以进去看一下。我们不必做修改。

编译之前需要稍微修改一下脚本,因为,原脚本是默认使用gcc编译的。ndk18之后就不怎么支持gcc了。这里换成clang/clang++编译。
在这里插入图片描述
这里设置了ndk路径和cmake编译工具 去掉了 -DANDROID_STL设置项。
-DCMAKE_TOOLCHAIN_FILE这一项会去调用ndk中的cmake工具链。

运行脚本:

sudo bash ./make-Android.bash

按道理到这里应该是能直接编译的。但是坑就坑在这里。

脚本他执行有问题。
容我一一道来。
如果编译出现这种现象:
在这里插入图片描述
这是因为 Ubuntu 不支持bash指令运行脚本。文件名后缀改成.sh,运行改成:

sudo sh ./make-Android.bash

如果遇到如下这种情况:
在这里插入图片描述
原因是直接从window将文件拷贝到Ubuntu虚拟机上时,文本格式不纯粹了。文本末尾的“\r”也当作指令本身。
解决:创建一个新的sh脚本。

#test.sh

#!/bin/bash
echo "hello world"

执行chmod 指令赋予权限

chmod 777 test.sh

执行成功之后将原本的make-Android.bash中的内容复制进去。就可以了。
上级目录中的env_setup.sh 也需要如此操作一次。

最后执行成功样子:
在这里插入图片描述
。。。。。
在这里插入图片描述

在这里插入图片描述
libvpu.so在目录编译生成的文件夹中/mpp/legacy下。
在这里插入图片描述

头文件全部在项目根目录mpp/inc中
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
在非root用户下安装OpenCV4并使用g++/CMake编译,可以按照以下步骤进行操作: 1. 安装必要的依赖项 ``` sudo apt-get update sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev ``` 2. 下载OpenCV4源代码 ``` git clone https://github.com/opencv/opencv.git cd opencv git checkout 4.0.0 ``` 3. 创建一个build目录并进行编译 ``` mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=$HOME/opencv_install -DCMAKE_BUILD_TYPE=Release .. make -j8 make install ``` 其中,`$HOME/opencv_install` 是你想要安装OpenCV4的路径。 4. 配置环境变量 将以下内容添加到你的`.bashrc`文件中: ``` export PKG_CONFIG_PATH=$HOME/opencv_install/lib/pkgconfig:$PKG_CONFIG_PATH export LD_LIBRARY_PATH=$HOME/opencv_install/lib:$LD_LIBRARY_PATH ``` 然后执行以下命令使其生效: ``` source ~/.bashrc ``` 5. 编写CMakeLists.txt并进行编译 在你的项目目录中创建一个 `CMakeLists.txt` 文件,并在其中添加以下内容: ``` cmake_minimum_required(VERSION 2.8) project(your_project_name) find_package(OpenCV REQUIRED) add_executable(your_executable_name your_source_files.cpp) target_link_libraries(your_executable_name ${OpenCV_LIBS}) ``` 将 `your_project_name` 和 `your_executable_name` 分别替换为你的项目名和可执行文件名。 然后在项目目录下创建一个 `build` 目录,并在其中进行编译: ``` mkdir build cd build cmake .. make ``` 编译完成后,你的可执行文件将位于 `build` 目录下。 以上就是在非root用户下安装OpenCV4并使用g++/CMake编译的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Griza_J

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值