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

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

前言

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


效果演示

  


宇视SDK下载

  官方下载地址:https://cn.uniview.com/

  

  


模块化部署

  


引入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即可


工程模板

  


红胖子建议

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


ldconfig引入库方法总结

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

  

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

  

  

步骤三:使用ldconfig

  

相关文章
|
2月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
43 0
|
19天前
|
存储 NoSQL 调度
|
2月前
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
55 1
|
3月前
|
JSON 运维 Serverless
Serverless 应用引擎使用问题之ThinkPHP框架是否有基于SDK的demo
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
|
存储 监控 开发工具
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
34 0
|
2月前
|
Shell Go 开发工具
【Azure Developer】Go语言调用Azure SDK如何登录到中国区Azure环境
【Azure Developer】Go语言调用Azure SDK如何登录到中国区Azure环境
|
2月前
|
开发工具
【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令Connect-MgGraph -Environment China xxxxxxxxx 遇见登录错误
【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令Connect-MgGraph -Environment China xxxxxxxxx 遇见登录错误
|
2月前
|
存储 API 开发工具
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
|
2月前
|
开发工具 数据安全/隐私保护 Python
【Azure 环境】通过Python SDK收集所有订阅简略信息,例如订阅id 名称, 资源组及组内资源信息等,如何给Python应用赋予相应的权限才能获取到信息呢?
【Azure 环境】通过Python SDK收集所有订阅简略信息,例如订阅id 名称, 资源组及组内资源信息等,如何给Python应用赋予相应的权限才能获取到信息呢?
|
2月前
|
缓存 JavaScript 前端开发
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)更新时间(2020-10-29)
下一篇
无影云桌面