首页 > 其他分享 >RK3588开发笔记(二):基于方案商提供sdk搭建引入mpp和sdk的宿主机交叉编译Qt5.12.10环境

RK3588开发笔记(二):基于方案商提供sdk搭建引入mpp和sdk的宿主机交叉编译Qt5.12.10环境

时间:2023-10-19 10:55:06浏览次数:40  
标签:Qt5.12 lib 宿主机 PWD mpp INCLUDEPATH include sdk

前言

  上一篇项目已经构建好了Qt,板子接入mipi屏幕也跑起来了,Qt也能正常运行了,现在需要接入定制开发的sdk,sdk中使用了硬解码等资源涉及到bsp的mpp,所以下一步就是引入mpp和sdk到Qt开发环境中,从而Qt中可以调用sdk接口进行进一步的应用结合开发了。

 

注意

  本文公开了Qt开发嵌入式主板应用的实际过程,提供给读者学习参考,基本流程一致(但是有经验的开发板方案商一般会直接提供基于SDK的Qt基础环境Demo的虚拟机),本次算是额外走了一次过程,记录下,仅供参考。
  本文所有资料不对外提供,遵守基本的职业道德是一切的根本,重在学习熟悉解决问题的过程。

 

说明

  固件并没有更新,bsp的支持包是以库的形式提供,所以当作库即可。
  在这里插入图片描述

 

Qt融入SDK

步骤一:分析sdk构成

  这部分需要与方案商核对,当然也存在服务老厂这种,一开始就提供了完整的环境和文档,本次合作的方案商对于兼容Qt这块未弄,所以需要我们自己手动来操作。
  Sdk采用的是CMake的Makefile传统bsp开发模式:
  在这里插入图片描述

  只是纯纯的sdk部分打包,这个问题也是做linux开发大部分非资深容易出现的,就是给东西永远是少东西的(最好的方式,就是自己跑一遍,避免过于的额外沟通)。
  在这里插入图片描述

  然后沟通后,我们需要包含以下的库(其中.a是静态库,.so是动态库):
  在这里插入图片描述

步骤二:进入libcomn.a通用库,简单测试通过

  在这里插入图片描述

  在这里插入图片描述

  运行起来,可能是libcomn.a包含后,没有变成复杂
  在这里插入图片描述

  成功了。

步骤三:sdk引入单独模块化

  这是我司模块化开发的统一标准:
  在这里插入图片描述

步骤四:引入所有的库

  逐一引入到sdkManager.pri,有部分库需要做处理,正常引入的就是include和lib,不拿出来了,下面单独弄出来是需要调整修改的:

opencv库

  opencv的库,有几个版本,我们是aarch64,所以单独纠正逻辑:
  在这里插入图片描述

mpp(支持bsp开发)

  下面是mpp的库,是bsp,但是出现2个.0,.1,沟通是两个版本bsp,只能说运行的时候,哪一个能跑就用哪一个,错了就换一个:
  在这里插入图片描述

ffmpeg库

  下面是ffmpeg4.0的库,这里大概率是符号连接,可能复制打包sdk的时候引用连接断了,这里直接使用文件大的进入:
  在这里插入图片描述

sdkManager.pri

  完成后的sdkManager.pri:
  在这里插入图片描述

  在这里插入图片描述
  在这里插入图片描述

INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD

# comn
INCLUDEPATH += $$PWD/sdk/comn/include
LIBS += -L$$PWD/sdk/comn/lib \
        -lcomn

# xzsDevice
INCLUDEPATH += $$PWD/sdk/xzsDevice/include
LIBS += -L$$PWD/sdk/xzsDevice/lib \
        -lrtsp_util \
        -lXzsDevice

# sqlite3
INCLUDEPATH += $$PWD/sdk/sqlite3/include
LIBS += -L$$PWD/sdk/sqlite3/lib \
        -lsqlite3

# Rockit
INCLUDEPATH += $$PWD/sdk/Rockit/include
LIBS += -L$$PWD/sdk/Rockit/lib \
        -lasound \
        -ldrm \
        -lgraphic_lsf \
        -ljpeg \
        -lmali \
        -lpanoStitchApp \
        -lrga \
        -lrkaiq \
        -lrkgfx_avs \
        -lrknn_api \
        -lRkSwCac \
        -lrockchip_mpp \
        -lrockit \
        -lturbojpeg

# opencv
INCLUDEPATH += $$PWD/sdk/opencv/opencv-linux-aarch64/include
LIBS += -L$$PWD/sdk/opencv/opencv-linux-aarch64/lib \
        -llibjpeg-turbo \
        -lopencv_calib3d \
        -lopencv_core \
        -lopencv_dnn \
        -lopencv_features2d \
        -lopencv_imgcodecs \
        -lopencv_imgproc \
        -lopencv_video

# mpp
INCLUDEPATH += $$PWD/sdk/mpp/include
LIBS += -L$$PWD/sdk/mpp/Linux/aarch64/lib \
        -lrockchip_mpp

# MediaStore
INCLUDEPATH += $$PWD/sdk/MediaStore/include
LIBS += -L$$PWD/sdk/MediaStore/lib \
        -lMediaStore \
        -lMediaStoreClient \
        -lsqlite3

# MediaReader
INCLUDEPATH += $$PWD/sdk/MediaReader/include
LIBS += -L$$PWD/sdk/MediaReader/lib \
        -lMediaReader

# jsoncpp-1.9.5
INCLUDEPATH += $$PWD/sdk/jsoncpp-1.9.5/include
LIBS += -L$$PWD/sdk/jsoncpp-1.9.5/lib \
        -ljsoncpp

# HiDevice
INCLUDEPATH += $$PWD/sdk/HiDevice/include
LIBS += -L$$PWD/sdk/HiDevice/lib \
        -lHiDevice

# ffmpeg-4.0
INCLUDEPATH += $$PWD/sdk/ffmpeg-4.0/include
LIBS += -L$$PWD/sdk/ffmpeg-4.0/lib \
        -lavcodec-58 \
        -lavdevice-58 \
        -lavfilter-7 \
        -lavformat-58 \
        -lavutil-56 \
        -lpostproc-55 \
        -lswresample-3 \
        -lswscale-5

HEADERS += \
    $$PWD/sdkManager.h

步骤五:编译引入所有化境的空Demo

  编译验证库是否都引入成功:
  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  这里沟通可能时之前mpp的版本不对,替换下版本:
  在这里插入图片描述

  测试了不行 看判断 .so和.so.1两个生成的时间是一样的 ,.so.0是空0大小,经过与方案商沟通,后面给他编译的单独库给过来,大概率是版本控制没做好,引入是肯定引入成功了,第二天再解决。
  第二天重新给了所有的直接依赖的库单独打包:
  在这里插入图片描述

  重新引入,头文件用之前的,库文件用新的,逐步添加:
  在这里插入图片描述

  测试还是不行,调试库,确实没有这个函数:
  在这里插入图片描述

  协调方案上,提供我司模块化的纯引入基础函数的testSdkDemo,让方案商调通(这部分在传统开发中,一般是方案商自行testSdk验证下Qt基础环境,以确认开发的sdk能正确引入Qt,参考市面上的其他开发板方案商)。

 

结论

  至此,由于将我司Qt测试的纯SDK给到方案商,那么方案商调通好,就可以了,其他sdk可以参考本文添加,当前使用了ffmpeg库进行了播放器展示,确认是ok的,本文结束。

标签:Qt5.12,lib,宿主机,PWD,mpp,INCLUDEPATH,include,sdk
From: https://www.cnblogs.com/qq21497936/p/17774221.html

相关文章

  • 基于 SpringBoot+Hikvision SDK 远程查看配置海康网络摄像头配置
    写在前面工作中遇到,简单整理理解不足小伙伴帮忙指正对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧——赫尔曼·黑塞《德米安》海康设备通过SDK查看......
  • 网页CAD二次开发(WEB CAD SDK)实现单行和多行文字的绘制
    前言今天讲一下如何利用WEBCADSDK来绘制单行文字和多行文字,在使用mxcad绘制文字之前请先按照mxcad文档,将cad图纸在网页上渲染出来,如果没有阅读mxcad文档可能无法理解后续代码。在线CAD功能测试:https://demo.mxdraw3d.com:3000/mxcad/   绘制文字和多行文字单行文字代......
  • 实时美颜技术的崭新时代:美颜SDK开发与应用
    美颜技术的崭新时代已经来临,实时美颜SDK的开发和应用成为数字世界中不可或缺的一部分。从社交媒体到视频直播,实时美颜技术已经在各种应用中取得了广泛成功,吸引了数百万用户。本文将深入探讨实时美颜技术的发展、SDK的开发,以及在不同领域中的应用。一、实时美颜技术的演进美颜技术的......
  • 01-SDK分析
    目录一.驱动部分函数含义和用法1.gpio部分函数定义和用法2.keyboard部分函数定义和用法二.app部分函数含义和用法1.sleep部分函数定义和用法三.疑问点1.变量问题:一.驱动部分函数含义和用法1.gpio部分函数定义和用法2.keyboard部分函数定义和用法voidkeyboard_de......
  • Android sdkmanager not found. Update to the latest Android SDK and ensure that t
     (base)cloud@Robotbin%flutterdoctor--android-licensesAndroidsdkmanagernotfound.UpdatetothelatestAndroidSDKandensurethatthecmdline-toolsareinstalledtoresolvethis.     ......
  • 【开源】给ChatGLM写个,Java对接的SDK
    作者:小傅哥-百度搜小傅哥bugstack博客:bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!......
  • 使用 Open XML SDK 实现 html 富文本转换为 docx 格式示例
     使用OpenXMLSDK实现html富文本转换为docx格式文档相对复杂。下面是一个示例。手动检测<strong>和<em>标签并应用相应的文本格式。usingSystem;usingDocumentFormat.OpenXml;usingDocumentFormat.OpenXml.Packaging;usingDocumentFormat.OpenXml.Wordproces......
  • 实时美妆魅力尽显:探索相芯轻美妆SDK功能及集成方法(Android)
    随着人工智能技术的不断发展,相芯SDK的轻美妆功能为用户带来了一种全新的美妆体验。轻美妆是妆容和美妆的结合,使用比较轻薄的妆效使轻美妆效果更佳。这一功能集成了多项先进技术,通过人脸识别、图像处理和分割等技术,实现了实时美妆效果的展示和应用。本文将深入介绍相芯SDK轻美妆功能......
  • Semantic Kernel .NET SDK 的 v1.0.0 Beta1 发布
    介绍SemanticKernel(SK)是一个开源的将大型语言模型(LLM)与流行的编程语言相结合的SDK,Microsoft将SemanticKernel(简称SK)称为轻量级SDK,结合了OpenAI,AzureOpenAI和HuggingFace等AILLM的集成。它使开发人员能够通过编排AI组件并将其与现有代码集成来创建AI应用。SDK提供对J......
  • 【Azure Developer】示例: 在中国区调用MSGraph SDK通过User principal name获取到Use
    问题描述示例调用MSGraphSDK通过Userprincipalname获取到User信息,如ObjectID。 参考资料选择MicrosoftGraph身份验证提供程序: https://learn.microsoft.com/zh-cn/graph/sdks/choose-authentication-providers?tabs=java#using-a-client-secret-2MicrosoftGraphSDKfor......