首页 > 其他分享 >麒麟系统开发笔记(九):在国产麒麟系统上搭建宇视摄像头SDK基础环境Demo

麒麟系统开发笔记(九):在国产麒麟系统上搭建宇视摄像头SDK基础环境Demo

时间:2022-10-26 15:38:18浏览次数:87  
标签:引入 lib V2.6 Demo 麒麟 NETDEVSDK 宇视 PWD LIBS

前言

  国产麒麟系统开发上,使用宇视摄像头,本篇使用宇视官网的提供的SDK,搭建基础的国产系统上宇视摄像头SDK开发化境Demo。

<br>

效果演示

  在这里插入图片描述

<br>

宇视SDK下载

  官方下载地址:https://cn.uniview.com/   在这里插入图片描述   在这里插入图片描述

<br>

模块化部署

  在这里插入图片描述

<br>

引入sdk

  在cameraManager.pri引入(非模块化可以直接在pro中添加):

# 引入摄像头头文件和sdk
DEFINES += LINUX
INCLUDEPATH += $$PWD/NETDEVSDK_Linux64_V2.6.0.0/include
LIBS += -L$$PWD/NETDEVSDK_Linux64_V2.6.0.0/lib
LIBS += -lNetDEVSDK

  其中LINUX宏是NetDEVSDK.h头文件中需要枚举的,其他为标准引入方法:头文件,库路径,库文件。   运行报错:   在这里插入图片描述

  这里是因为libNetDEVSDk.so引用了很多其他的库,而这些库sdk的lib中也有,但是需要我们手动引入以下:   在这里插入图片描述

  按照错误提示,将需要的库引入:   在这里插入图片描述

# 引入摄像头头文件和sdk
DEFINES += LINUX
INCLUDEPATH += $$PWD/NETDEVSDK_Linux64_V2.6.0.0/include
LIBS += -L$$PWD/NETDEVSDK_Linux64_V2.6.0.0/lib
LIBS += -lNetDEVSDK

LIBS += -lmxml
LIBS += -lNetDiscovery
LIBS += -lcloud
LIBS += -lpolarssl
LIBS += -lcloudclient
LIBS += -lcloudhttpcurl
LIBS += -levent
LIBS += -lstun
LIBS += -lt2u
LIBS += -lCloudSDK
LIBS += -lNDPlayer
LIBS += -lNDRM

  编译报错,继续引入:   在这里插入图片描述

  成功编译,然后运行:    在这里插入图片描述

  使用qtcreator运行也需要引入,那么在工程中添加LD_LIBRARY_PATH路径,引入到模块下的lib中,本来还想在Qtcreator运行环境中引入,但是实际上已经有了:    在这里插入图片描述   这就奇怪了,已有了运行起来还加载不到,不纠结,使用ldconfig将其添加进系统连接路径:

sudo vi /etc/ld.so.conf
sudo ldconfig

  在这里插入图片描述   成功运行起来:    在这里插入图片描述   使用此种方式,库也无需引入这么多了:   最终cameraManager.pri如下:

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

HEADERS += \
    $$PWD/CameraManager.h

SOURCES += \
    $$PWD/CameraManager.cpp

# 引入摄像头头文件和sdk
DEFINES += LINUX
INCLUDEPATH += $$PWD/NETDEVSDK_Linux64_V2.6.0.0/include
LIBS += -L$$PWD/NETDEVSDK_Linux64_V2.6.0.0/lib
LIBS += -lNetDEVSDK

# 新系统后,将sdk的lib目录添加进/etc/ld-so.conf
# 绝对路径另起一行,无include
# 使用ldconfig即可

<br>

工程模板

  在这里插入图片描述

<br>

红胖子建议

  引入库的方法很多,根据项目情况和自身习惯选择合适自己的即可,但是有一点特别注意,就是项目迁移或者交接源代码的时候,一定要描述清楚,避免交接源码后接收代码着环境搭建都需要细节沟通甚至花费几天,尤其跨项目组部门公司这种,所以,笔者更倾向于直接将库包含进模块,这样笔者交接代码都属于傻瓜式交接,项目交接后都可直接编译修改的,基本不存在任何环境问题。(纯技术角度)

<br>

ldconfig引入库方法总结

步骤一:lib绝对文件夹路径获取

  在这里插入图片描述

步骤二:修改/etc/ld-so.conf,将lib库路径另起一行,填入库文件夹绝对路径一行

  在这里插入图片描述

  在这里插入图片描述

步骤三:使用ldconfig

  在这里插入图片描述

标签:引入,lib,V2.6,Demo,麒麟,NETDEVSDK,宇视,PWD,LIBS
From: https://blog.51cto.com/hongpangzi/5797952

相关文章

  • istio部署demoapp应用 (六)基于权重的流量分割
    架构图virtualservice-demoapp.yamlapiVersion:networking.istio.io/v1beta1kind:VirtualServicemetadata:name:demoappspec:hosts:-demoapphttp:......
  • Demo48_还原稀疏数组
    //还原稀疏数组packagecom.HuanXin.array_6;publicclassDemo09_01{publicstaticvoidmain(String[]args){int[][]AA=newint[7][7];AA[1][1]=......
  • VMware安装中标麒麟Linux_server_x86_ZX64(兆芯版)
    VNware15自行百度镜像下载地址:NeoKylin_zx_linux_server_x86_64.iso(试用版)系统要求-512MB物理RAM(推荐使用1G以上RAM)-6G以上可用磁盘空间-800x6......
  • Demo47_稀疏数组
    //稀疏数组,将原始的稀疏数组转换为稀疏数组packagecom.HuanXin.array_6;publicclassDemo09{publicstaticvoidmain(String[]args){System.out.println......
  • istio部署demoapp应用 (四) Ingress-gateway暴露demoapp
    proxy-gateway.yamlapiVersion:networking.istio.io/v1beta1kind:Gatewaymetadata:name:proxy-gatewaynamespace:istio-systemspec:selector:app:i......
  • istio部署demoapp多版本应用示例
    环境说明frontend(proxy):前端应用,会请求后端的demoappservice:proxydemoapp:后端应用同时部署两个版本 部署demoappv1.0deploy-demoapp-v10.yamla......
  • 银河麒麟安装nmon以及rpc.rstatd的方法
    银河麒麟安装nmon以及rpc.rstatd的方法 背景说明随着公司业务的发展,需要在ARM环境上面进行性能测试.为了进行ARM环境的验证,需要一些组件进行资料收集.比较好的......
  • Demo46_冒泡排序01
    //冒泡排序packagecom.HuanXin.array_6;publicclassDemo08_01{publicstaticvoidmain(String[]args){int[]QQ={1,4,5,6,78,9};int[]aa=AA......
  • KYLIN(麒麟系统)下安装MySQL5.0
    1groupaddmysql2useradd-gmysqlmysql3#修改密码4passwdmysql5cd/usr/local6#解压文件7tar-zxvfmysql-standard-5.0.15-linux-i686.tar.gz8......
  • c# async await 的Demo
    如下代码:在运行异步方法:DownloadDocsMainPageAsync()后,后续的代码直接可以运行。    在调用awaitdownloading()后等待运行结果。代码如下:publ......