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

news/2024/7/10 19:33:22 标签: qt, ffmpeg, 开发语言

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127532255

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

国产麒麟系统相关开发

上一篇:《麒麟系统开发笔记(八):在国产麒麟系统上使用linuxdeployqt发布qt程序》
下一篇:敬请期待…


前言

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


效果演示

  在这里插入图片描述

相关博客

  《项目实战:Qt球机控制工具 v1.0.0(球机运动八个方向以及运动速度,设置运动到指定角度,查询当前水平和垂直角度)》
  《麒麟系统开发笔记(九):在国产麒麟系统上搭建宇视摄像头SDK基础环境Demo》


宇视SDK下载

  CSDN粉丝0积分下载地址:https://download.csdn.net/download/qq21497936/86806967
  QQ群下载:请回首页加QQ群,QQ群文件搜索"NETDEVSDK"
  官方下载地址: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

  在这里插入图片描述


上一篇:《麒麟系统开发笔记(八):在国产麒麟系统上使用linuxdeployqt发布qt程序》
下一篇:敬请期待…


若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127532255


http://www.niftyadmin.cn/n/1197.html

相关文章

全志实现串口通信

串口基本认知 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方 式的扩展接口。串行接口(Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简 单&#xf…

解决libcrypto.so.1.0.0 动态库找不到的问题

问题 ubuntu20.04下运行程序出现: “error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory” 原因 libcrypto.so.1.0.0是openssl的动态链接库,ubuntu20.04默认安装的版本高于1.0.0所致。 可以…

我要写整个中文互联网界最牛逼的JVM系列教程 | 「类加载子系统」章节:类的加载过程之二:Linking

经历过类的加载过程的第一个阶段(即加载阶段)以后,接下来,我们就要来看一下类的加载过程的第二个阶段了,即Linking阶段,翻译过来便是链接阶段。 链接阶段 一说到这个Linking阶段,我希望大家能立马知道的是它又被分成了如下三个具体的子阶段。 验证(Verify)。准备(P…

【前端攻城师之JS基础】11Bom浏览器对象模型

1.Bom浏览器对象模型 BOM可以让我们通过JS来操作浏览器,在BOM中提供了一组对象,用来完成对浏览器的操作,初步了解History和Location BOM对象包括 Window 代表整个浏览器窗口,同时window也是网页中的全局对象 Navigator 代表当前…

web前端 html+css+javascript游戏网页设计实例 (网页制作课作业)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

常见的限流算法的原理以及优缺点

原文网址:常见的限流算法的原理以及优缺点_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍限流常用的算法及其优缺点。 常用的限流算法有: 计数器(固定窗口)算法滑动窗口算法漏桶算法令牌桶算法 下面将对这几种算法进行分别介绍…

【QT】windows下QT使用HIDAPI

文章目录前言一、HIDAPI是什么?二、添加HIDAPI库1.下载HIDAPI相关库文件2.重新编译x64库文件三、使用函数介绍1.初始化以及释放函数2.遍历HID USB函数3.打开USB函数4.读写USB函数四、HID USB链表结构体介绍五、获取指定VID和PID的HID USB设备信息1.获取设备的VID和P…

手写实现Vue3 reative

前言 reative原理详解:https://blog.csdn.net/weixin_39503495/article/details/127058245 环境搭建 使用typescript、vite构建工具 // 初始化项目 npm init -y // 安装依赖 npm i vite typescript -D初始化typescript。 tsc --init 创建index.html、index.ts&am…