- 博客(1401)
- 资源 (64)
- 收藏
- 关注
原创 云边端一体化?AIoT全流程闭环的“真”开源的智能算法应用平台正式发布!
EasyAIoT智能算法应用平台正式发布,创新采用Java、Python、C++三语言混编架构,实现AIoT全流程闭环。平台包含五大独立模块:WEB管理界面、DEVICE设备管理、VIDEO视频处理、AI智能分析和TASK高性能计算,支持云端到边缘灵活部署。核心功能包括百级摄像头接入、多模态数据处理、20+预训练模型及大语言模型集成,提供从数据采集到智能分析的全链路服务。通过零样本标注技术和模块化设计,大幅降低AI使用门槛,适用于安全监控、智能交通等多种场景。项目已开源,支持一键容器化部署。
2025-11-21 15:21:25
2205
4
原创 实至名归 | EasyAIoT成为开源中国GVP-Gitee最有价值开源项目
以下是部署EasyAIoT平台所需组件(PostgreSQL、Nacos、Kafka、TDEngine、Redis)的完整安装与配置指南,基于最新稳定版本和行业最佳实践整理。
2025-08-18 18:05:26
1268
12
原创 如何在 macOS 上切换 Shell:从 Bash 到 Zsh 或其他 Shell
摘要:本文介绍了如何在 macOS 系统中查看、切换和配置不同的 Shell。从 macOS Catalina 开始,Zsh 已成为默认 Shell。文章详细说明了通过 cat /etc/shells 查看可用 Shell,使用 chsh 命令切换 Shell(如 Bash 或 Zsh),以及如何验证和配置新 Shell(包括安装 oh-my-zsh 等工具)。还提供了重新加载 Shell 的方法和注意事项,帮助用户根据需求灵活选择和管理 Shell 环境。
2025-11-24 14:13:57
209
原创 解决 NVIDIA 驱动版本不匹配错误:Failed to initialize NVML
摘要:本文介绍了Linux系统中nvidia-smi命令报错"Driver/library version mismatch"的解决方案。该错误通常由NVIDIA内核驱动与用户空间库版本不一致引起。主要解决方法包括:1)重启系统;2)检查驱动状态并重新安装匹配版本;3)手动重新加载驱动模块。还提供了高级排查方法,如检查内核模块状态、处理安全启动问题、查看系统日志等。建议定期更新系统并使用官方仓库驱动来预防此类问题。最终通过执行nvidia-smi验证问题是否解决。(150字)
2025-11-22 16:04:00
187
原创 Ubuntu 解决 ONNX Runtime CUDA 错误:libcublasLt.so.12 缺失问题
摘要:本文分析了ONNX Runtime使用GPU加速时出现的libcublasLt.so.12缺失错误,提供了三种解决方案:安装CUDA 12(推荐)、修复现有CUDA安装或临时使用CPU模式。详细说明了各系统的安装步骤、环境变量配置方法,并包含验证修复、故障排除及预防措施。建议生产环境使用容器化技术管理依赖,避免环境差异问题。
2025-11-22 14:13:43
126
原创 Ubuntu 搭建Kubernetes 1.28版本集群
本文详细介绍了在Ubuntu系统上部署Kubernetes 1.28集群的完整步骤。主要内容包括:环境准备(SSH、主机名、时间同步、内核配置)、软件源配置、Docker和cri-docker安装、Kubernetes组件部署(kubeadm、kubelet、kubectl)、master节点初始化、worker节点加入、集群验证以及HAMI组件(NVIDIA驱动和GPU支持)的安装。重点说明了使用阿里云镜像源加速部署、cri-docker作为容器运行时,以及Calico网络插件的安装方法。该指南适用于多节
2025-06-26 16:24:17
236
原创 Ubuntu Kubernetes1.32版本搭建
本文详细记录了在Ubuntu 22.04.5 LTS系统上安装Kubernetes(K8S)集群的过程。首先,作者通过Vmware创建了三台虚拟机,并进行了系统配置,包括关闭swap、防火墙、设置时区和开启ipv4转发等。接着,安装并配置了containerd作为容器运行时,并详细描述了配置文件的修改和分发。随后,安装了K8S三件套(kubelet、kubectl、kubeadm),并初始化了集群,包括下载镜像、生成配置文件、初始化集群和安装Calico网络。最后,作者分享了在安装过程中遇到的一些问题及其解
2025-05-12 15:23:25
506
原创 Ubuntu ZLMediakit的标准配置文件(rtsp->rtmp->hls)
最近在工作中遇到不生成hls资源的问题,后面发现是配置文件有误,特此记录正确的config.ini配置文件,方便查阅。到此Ubuntu ZLMediakit的标准配置文件(rtsp->rtmp->hls)记录完毕。
2025-04-30 14:16:51
785
原创 Ubuntu 安装 VLC
最近项目中需要用VLC查看NVR下子设备的RTSP流,特此记录,便于日后查阅。或者在应用界面中启动,到此Ubuntu 安装 VLC介绍完成。
2025-04-03 10:36:54
1339
原创 PostgreSQL 获取当前连接的IP
这算是一个间接的方法。postgreSQL 可以通过自带的pg_backend_pid()函数获得进程号。然后拿当前的进程号,去pg_stat_activity 检索出当前连接的客户端的ip。
2025-04-01 09:32:13
319
原创 python 中with的使用及样例
在 Python 中,with 语句用于管理资源的上下文,它提供了一种简洁的方式来管理资源的获取和释放,确保资源在使用完毕后能够正确地被释放,即使发生异常也能够被正确处理,当你需要使用 with 语句的时候,通常是因为需要确保资源在使用完毕后被正确释放,比如文件的读写、数据库连接、线程锁等。
2025-03-21 09:48:03
335
原创 Python3.12 解决conda环境libstdc++版本过低问题
编译时提示undefined reference to …@GLIBCXX_3.4.30.链接时找不到该版本的库。把统中高版本的libstdc++.so.6.0.30复制到conda相应环境的lib中(记得修改前备份,防止改错了)conda版本conda 23.9.0。首先,检查当前环境中的。
2025-03-19 16:25:07
622
原创 C++17 上传文件到Minio(亲测可用)
如果您使用vcpkg处理多个项目的依赖关系,这是很常见的,因为在这种情况下只需要安装一次vcpkg。到此C++17上传文件到Minio介绍完成。如果您使用vcpkg处理多个项目的依赖关系,这是很常见的,因为在这种情况下只需要安装一次vcpkg。到此C++17上传文件到Minio介绍完成。如果您使用vcpkg处理多个项目的依赖关系,这是很常见的,因为在这种情况下只需要安装一次vcpkg。到此C++17上传文件到Minio介绍完成。
2025-03-14 18:14:50
465
原创 C++11 环境 CMake Error: CMake was unable to find a build program corresponding to “Ninja“.
包含Ninja的所有的构建语句和构建规则。CMake was unable to find a build program corresponding to “Ninja“.CMake was unable to find a build program corresponding to “Ninja“.CMake was unable to find a build program corresponding to “Ninja“.
2025-03-14 17:59:40
706
原创 C++11 中的std::shared_ptr 共享智能指针
是 C++11 标准库中的智能指针类型,用于管理动态分配的对象。与传统指针不同,自动管理内存,并在不再使用时自动释放对象,以避免内存泄漏。它是一种,即可以让多个指向同一个对象,并且会记录有多少个拥有该对象。
2025-03-14 17:57:37
232
原创 RK3588 openssl-3.4.1 编译安装
【代码】RK3588 openssl-3.4.1 编译安装。RK3588 openssl-3.4.1 编译安装RK3588 openssl-3.4.1 编译安装RK3588 openssl-3.4.1 编译安装RK3588 openssl-3.4.1 编译安装RK3588 openssl-3.4.1 编译安装RK3588 openssl-3.4.1 编译安装
2025-03-14 17:54:59
828
原创 RK3588 手动编译安装 OpenSSH 9.6p1(最新版)
【代码】RK3588 手动编译安装 OpenSSH 9.6p1(最新版)【代码】RK3588 手动编译安装 OpenSSH 9.6p1(最新版)【代码】RK3588 手动编译安装 OpenSSH 9.6p1(最新版)【代码】RK3588 手动编译安装 OpenSSH 9.6p1(最新版)
2025-03-14 17:41:05
285
原创 RK3588 OpenSSH安装升级(源码编译)
RK3588 OpenSSH安装升级(源码编译)RK3588 OpenSSH安装升级(源码编译)RK3588 OpenSSH安装升级(源码编译)RK3588 OpenSSH安装升级(源码编译)RK3588 OpenSSH安装升级(源码编译)RK3588 OpenSSH安装升级(源码编译)
2025-03-14 17:36:04
197
原创 RK3588 SSH 无法远程登录问题Failed to start ssh.service: Unit ssh.service not found.
【代码】RK3588 SSH 无法远程登录问题Failed to start ssh.service: Unit ssh.service not found.RK3588 SSH 无法远程登录问题Failed to start ssh.service: Unit ssh.service not found.RK3588 SSH 无法远程登录问题Failed to start ssh.service: Unit ssh.service not found.
2025-03-14 17:34:20
520
原创 RK3588 远程 SSH时出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
ssh服务是通过公钥和私钥来进行连接的,它会把每个曾经访问过计算机或服务器的公钥(public key),记录在~/.ssh/known_hosts 中,当下次访问曾经访问过的计算机或服务器时,ssh就会核对公钥,如果和上次记录的不同,OpenSSH会发出警告。ssh-keygen -R XX.XX.XX.XX (IP地址)此报错是由于远程的主机的公钥发生了变化导致的。警告:远程主机标识已更改!
2025-03-14 17:31:57
268
原创 RK3588 代码同步 EOF while reading packet报错
2. 服务器上打开sshd_config: sudo vi /etc/ssh/sshd_config。1. 服务器上执行whereis sftp-server,找到sftp-server位置,3. 服务器上重启sshd, sudo systemctl restart sshd。4. 如果pycharm还报错,需要重启pycharm。
2025-03-14 17:30:08
249
原创 C++11 编译使用 aws-cpp-sdk
C++11 编译使用 aws-cpp-sdk。在下载完sdk代码后 在sdk源目录之外创建一个文件夹来构建文件。此文档针对于在Linux系统上使用源码进行编译开发操作系统使用原生的contos7Linux。机器配置建议 内存8G以上,CPU 4个 以上GCC 4.9.0 及以上版本Cmake 3.12以上 3.21以下
2025-03-13 16:50:59
582
原创 RK3588 编译 openssl
在编译 OpenSSL 时,你需要确保你的系统环境已经配置好了所有必要的依赖和编译工具。下面是一般步骤和一些常见问题的解决方案,特别是在使用 RK3588 这类的 ARM 处理器上。在配置 OpenSSL 之前,确保你知道你的 ARM 处理器的架构(如 armv7、armv8 等)。你可以使用 uname -m 来查看你的系统架构。首先,你需要安装编译 OpenSSL 所需的依赖。这通常包括编译器(如 GCC)、make 工具、Perl(用于配置脚本)以及其他一些库。
2025-03-12 18:00:39
334
原创 C++11 安装MinIO文件服务器并上传下载
MinIO的另一个优点是它的易用性。通过简单的命令行界面或API,用户可以轻松地创建、删除和管理存储桶,上传和下载文件,以及进行其他常见的对象存储操作。MinIO支持k8s、docker、Linux、Win、MacOS多种安装方式,这里我用的Linux安装。总之,MinIO是一种高性能、易用、可扩展的对象存储解决方案,适用于各种规模的应用场景。Github地址:https://github.com/minio/minio-cpp。SDK参考:https://minio-cpp.min.io/
2025-03-12 13:50:49
289
原创 C++11 cv::Mat上传Minio文件系统
cv::Mat 不能直接上传,需转换格式后上传。1、编码内存数据std::vector<uchar> img_buffer;cv::imencode(".jpg", mat, img_buffer); // 转为JPEG内存数据
2025-03-12 12:26:17
198
原创 C++11 根据日期和随机数生成不重复文件名
【代码】C++11 根据日期和随机数生成不重复文件名。时间戳部分使用 std::chrono 获取当前时间到毫秒,格式化为 YYMMDDHHMMSSmmm(15字符)。随机数部分生成固定位数的随机数(如5位),确保同一毫秒内不重复。固定长度组合时间戳(15)+ 随机数(5)= 总长度20字符。
2025-03-11 17:18:06
197
原创 C++11 拼接字符串
在C++11中,字符串拼接有多种实现方式,可根据场景选择不同方法以提高效率或简化代码。通过结合具体场景选择合适方法,可显著提升代码效率和可维护性。如需进一步优化性能,可参考C++17的。优势:内存分配优化较好,适合少量拼接操作1。适用场景:固定字符串拼接,减少运行时开销。优势:类型安全,适合复杂拼接场景。优势:代码复用性强,扩展性好。运算符(可能产生临时对象),改用。或模板时,需确保所有类型支持。支持混合类型数据拼接(如。避免在循环内多次调用。或预分配字符串45。
2025-03-11 17:13:37
332
原创 C++11 将const char *转换为形参类型 string
指针在转换时指向有效的内存区域。若指针指向临时数据(如已释放的缓冲区),可能导致未定义行为14。的构造函数,涉及内存分配和字符拷贝。参数,生成一个新的字符串对象,并管理其内存生命周期124。若需在调用前显式控制转换过程,可直接使用。类型的形参可以通过以下方法实现,均基于隐式或显式调用。:强制类型转换需谨慎,需确保数据不会被意外修改35。时会触发未定义行为。:代码意图更明确,适用于需要明确类型转换的场景。隐式构造字符串对象,因此在函数调用时可直接传递。参数,编译器会自动完成转换。形参,满足函数调用的需求。
2025-03-11 13:32:57
319
原创 C++11 将string转换为形参类型 const char *
在C++11中,将std::string转换为const char*类型可以通过以下两种主要方法实现,均能直接满足形参类型要求:1. 使用c_str()方法c_str()方法返回一个指向以空字符(\0)结尾的字符数组的指针,类型为const char*,可直接用于需要const char*参数的函数。
2025-03-11 13:29:24
350
原创 C++11 切割字符串
在C++11中,可以通过字符串分割和索引定位的方式提取目标字段。两种方法均能正确提取目标字段,方法1效率更高,方法2代码更简洁。
2025-03-11 13:27:14
132
原创 RK3588 安装ffmpeg6.1.2
在安装ffmpeg在 RK3588 开发板上时,你需要确保你的开发环境(例如 Ubuntu、Debian 或其他 Linux 发行版)已经设置好了交叉编译工具链,以便能够针对 RK3588 架构编译软件。
2025-03-07 15:52:26
665
原创 TensorRT 对 YOLOv8 模型进行 int8 量化
使用 Python 版的 TensorRT,可以很方便地对 YOLOv8 模型进行 int8 量化。得到 int8 量化模型之后,用 YOLOv8 的官方代码就可以直接调用该模型。截止到目前 2023 年 9 月底,YOLOv8 官方最新的版本 8.0.186,还不支持直接进行 TensorRT 的 int8 量化,因此需要我们手动进行量化。(目前 YOLOv8 官方工具只支持转换 FP32 和 FP16 格式的 TensorRT 模型)
2025-03-07 10:21:01
357
原创 C++ vector 中 push_back 和emplace_back的区别
emplace_back在向量的末尾直接构造元素,而不需要复制构造函数。它接受与元素类型相同的参数,并在向量内部分配一个新元素的空间。这意味着它可以避免拷贝构造和移动构造,并在性能上优于push_back。push_back将元素副本添加到向量的末尾。它需要将元素副本从函数参数中复制到向量的内部存储空间。这意味着在向量中存储复杂对象时,需要进行一次拷贝构造。在C++的vector中,push_back和emplace_back都用于将元素添加到向量的末尾,但它们的实现方式略有不同。
2025-03-06 12:49:09
455
原创 C++ threads.emplace_back不同参数用法
在C++中,使用类创建线程是一个常见需求。类提供了多种方式来构造线程对象,包括直接传递可调用对象(如函数、lambda表达式、成员函数指针等)以及它们的参数。方法通常与一起使用,以便在容器中直接构造线程对象,而不是先创建再赋值。
2025-03-06 11:00:26
583
原创 RK3588 本地clion远程断点调试开发板程序
等待install完成后(编译完成日志与linux下直接cmake编译一致),可以看到右边的调试栏里所有的openGauss的程序已经进入可运行状态,这样就可以选择任意组件进行调试了。进入clion菜单File->Settings->Tools->SSH Configurations,添加一个linux的远程连接,下面的几个服务都会用到。配置本地与开发板的项目目录映射,Excluded Paths配置不需要同步的文件目录。在断点后的单步/步入/步出/全速执行均可正常执行,现在远程调试功能已经ready。
2025-03-06 10:44:07
875
原创 C++ thread joinable和join释放线程资源
在C++中,当你使用类创建线程时,线程的执行是异步的。这意味着主线程可以继续执行其任务,而新创建的线程将并发地执行其函数。为了确保资源得到正确管理,特别是在线程完成执行并退出时,你需要适当地处理这些线程。
2025-03-06 10:31:48
254
原创 C++ lock_guard和mutex的使用方法
std::mutex和是 C++ 标准库中用于多线程同步的工具,主要用于防止多个线程同时访问共享资源,导致数据竞争问题。std::mutex是一个用于互斥锁的类,提供了锁定(lock)和解锁(unlock)的功能。
2025-03-06 10:21:45
379
原创 C++ 线程池的实现原理及回调函数的使用
当有新的任务进来,从线程池中取出一个空闲的线程处理任务然后当任务处理完成之后,该线程被重新放回到线程池中,供其他的任务使用。当线程池中的线程都在处理任务时,就没有空闲线程供使用,此时,若有新的任务产生,只能等待线程池中有线程结束任务空闲才能执行。任务队列负责存放主线程需要处理的任务,工作线程队列其实是一个死循环,负责从任务队列中取出和运行任务,可以看成是一个生产者和多个消费者的模型。在上述的场景中必然会频繁的创建和销毁线程,这样的开销相信是不能接受的,此时线程池技术便是很好的选择。
2025-03-06 10:14:35
265
原创 C++ 标准库tuple类型详细介绍
在C++中,std::tuple是一个标准库类型,它允许你在单个对象中存储多个不同类型的值。与struct)类似,std::tuple是一种将不同类型的值聚合在一起的方式,但std::tuple更为灵活,可以动态地存储任意类型和数量的元素。
2025-03-06 10:06:44
220
原创 RK3588 mpp源码编译
RK3588 mpp源码编译git clone https://github.com/rockchip-linux/mpp.gitcd mpp-develop/build/linux/aarch64/./make-Makefiles.bash
2025-03-04 15:37:06
450
clickHouse备份工具1.3.1:clickhouse-backup-linux-amd64.tar.gz
2022-03-07
datax-elasticsearch-master.zip
2021-09-09
Mysql 到 Starrocks 同步,自动生成Flink的脚本
2023-11-20
动手学深度学习-Pytorch版,练习jupter-nootbook源码
2023-11-16
Kubenetes 三主三从集群高可用一键部署脚本
2023-10-25
harbor-v2.6.0离线安装包
2023-10-16
jdk-8u333-linux-x64
2023-09-12
apache-maven-3.6.3-bin
2023-09-12
ChatGPT3.5插件
2023-09-05
Golang 1.18.10 Windows安装包
2023-07-14
Minio集群部署安装包
2023-04-19
ShardingSphere-4.1.1 二次开发源码
2023-01-03
Seata二次开发源码
2023-02-21
RocketMQ-Connect 二次开发源码
2023-01-03
Kubernetes CRI Containerd 1.6.4 运行时容器安装包
2022-12-08
Kubernetes Crictl 1.20.0安装包,用于操作Continered容器命令集
2022-12-08
libseccomp 2.5.1版本,修复Containerd不兼容问题的组件包
2022-12-06
优秀的UI自动化测试框架
2022-08-28
优秀的自动化测试框架。
2022-08-28
自动生成指定大小测试文件。
2022-07-11
HDFS集群数据迁移怎么做?
2022-11-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅