- 博客(1395)
- 资源 (80)
- 问答 (1)
- 收藏
- 关注
原创 Ubuntu 安装 VLC
最近项目中需要用VLC查看NVR下子设备的RTSP流,特此记录,便于日后查阅。或者在应用界面中启动,到此Ubuntu 安装 VLC介绍完成。
2025-04-03 10:36:54
20
原创 PostgreSQL 获取当前连接的IP
这算是一个间接的方法。postgreSQL 可以通过自带的pg_backend_pid()函数获得进程号。然后拿当前的进程号,去pg_stat_activity 检索出当前连接的客户端的ip。
2025-04-01 09:32:13
7
原创 python 中with的使用及样例
在 Python 中,with 语句用于管理资源的上下文,它提供了一种简洁的方式来管理资源的获取和释放,确保资源在使用完毕后能够正确地被释放,即使发生异常也能够被正确处理,当你需要使用 with 语句的时候,通常是因为需要确保资源在使用完毕后被正确释放,比如文件的读写、数据库连接、线程锁等。
2025-03-21 09:48:03
202
原创 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
304
原创 C++17 上传文件到Minio(亲测可用)
如果您使用vcpkg处理多个项目的依赖关系,这是很常见的,因为在这种情况下只需要安装一次vcpkg。到此C++17上传文件到Minio介绍完成。如果您使用vcpkg处理多个项目的依赖关系,这是很常见的,因为在这种情况下只需要安装一次vcpkg。到此C++17上传文件到Minio介绍完成。如果您使用vcpkg处理多个项目的依赖关系,这是很常见的,因为在这种情况下只需要安装一次vcpkg。到此C++17上传文件到Minio介绍完成。
2025-03-14 18:14:50
68
原创 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
74
原创 C++11 中的std::shared_ptr 共享智能指针
是 C++11 标准库中的智能指针类型,用于管理动态分配的对象。与传统指针不同,自动管理内存,并在不再使用时自动释放对象,以避免内存泄漏。它是一种,即可以让多个指向同一个对象,并且会记录有多少个拥有该对象。
2025-03-14 17:57:37
122
原创 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
286
原创 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
40
原创 RK3588 OpenSSH安装升级(源码编译)
RK3588 OpenSSH安装升级(源码编译)RK3588 OpenSSH安装升级(源码编译)RK3588 OpenSSH安装升级(源码编译)RK3588 OpenSSH安装升级(源码编译)RK3588 OpenSSH安装升级(源码编译)RK3588 OpenSSH安装升级(源码编译)
2025-03-14 17:36:04
32
原创 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
92
原创 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
159
原创 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
80
原创 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
235
原创 RK3588 编译 openssl
在编译 OpenSSL 时,你需要确保你的系统环境已经配置好了所有必要的依赖和编译工具。下面是一般步骤和一些常见问题的解决方案,特别是在使用 RK3588 这类的 ARM 处理器上。在配置 OpenSSL 之前,确保你知道你的 ARM 处理器的架构(如 armv7、armv8 等)。你可以使用 uname -m 来查看你的系统架构。首先,你需要安装编译 OpenSSL 所需的依赖。这通常包括编译器(如 GCC)、make 工具、Perl(用于配置脚本)以及其他一些库。
2025-03-12 18:00:39
125
原创 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
34
原创 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
33
原创 C++11 根据日期和随机数生成不重复文件名
【代码】C++11 根据日期和随机数生成不重复文件名。时间戳部分使用 std::chrono 获取当前时间到毫秒,格式化为 YYMMDDHHMMSSmmm(15字符)。随机数部分生成固定位数的随机数(如5位),确保同一毫秒内不重复。固定长度组合时间戳(15)+ 随机数(5)= 总长度20字符。
2025-03-11 17:18:06
56
原创 C++11 拼接字符串
在C++11中,字符串拼接有多种实现方式,可根据场景选择不同方法以提高效率或简化代码。通过结合具体场景选择合适方法,可显著提升代码效率和可维护性。如需进一步优化性能,可参考C++17的。优势:内存分配优化较好,适合少量拼接操作1。适用场景:固定字符串拼接,减少运行时开销。优势:类型安全,适合复杂拼接场景。优势:代码复用性强,扩展性好。运算符(可能产生临时对象),改用。或模板时,需确保所有类型支持。支持混合类型数据拼接(如。避免在循环内多次调用。或预分配字符串45。
2025-03-11 17:13:37
51
原创 C++11 将const char *转换为形参类型 string
指针在转换时指向有效的内存区域。若指针指向临时数据(如已释放的缓冲区),可能导致未定义行为14。的构造函数,涉及内存分配和字符拷贝。参数,生成一个新的字符串对象,并管理其内存生命周期124。若需在调用前显式控制转换过程,可直接使用。类型的形参可以通过以下方法实现,均基于隐式或显式调用。:强制类型转换需谨慎,需确保数据不会被意外修改35。时会触发未定义行为。:代码意图更明确,适用于需要明确类型转换的场景。隐式构造字符串对象,因此在函数调用时可直接传递。参数,编译器会自动完成转换。形参,满足函数调用的需求。
2025-03-11 13:32:57
29
原创 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
35
原创 C++11 切割字符串
在C++11中,可以通过字符串分割和索引定位的方式提取目标字段。两种方法均能正确提取目标字段,方法1效率更高,方法2代码更简洁。
2025-03-11 13:27:14
19
原创 RK3588 安装ffmpeg6.1.2
在安装ffmpeg在 RK3588 开发板上时,你需要确保你的开发环境(例如 Ubuntu、Debian 或其他 Linux 发行版)已经设置好了交叉编译工具链,以便能够针对 RK3588 架构编译软件。
2025-03-07 15:52:26
246
原创 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
157
原创 C++ vector 中 push_back 和emplace_back的区别
emplace_back在向量的末尾直接构造元素,而不需要复制构造函数。它接受与元素类型相同的参数,并在向量内部分配一个新元素的空间。这意味着它可以避免拷贝构造和移动构造,并在性能上优于push_back。push_back将元素副本添加到向量的末尾。它需要将元素副本从函数参数中复制到向量的内部存储空间。这意味着在向量中存储复杂对象时,需要进行一次拷贝构造。在C++的vector中,push_back和emplace_back都用于将元素添加到向量的末尾,但它们的实现方式略有不同。
2025-03-06 12:49:09
57
原创 C++ threads.emplace_back不同参数用法
在C++中,使用类创建线程是一个常见需求。类提供了多种方式来构造线程对象,包括直接传递可调用对象(如函数、lambda表达式、成员函数指针等)以及它们的参数。方法通常与一起使用,以便在容器中直接构造线程对象,而不是先创建再赋值。
2025-03-06 11:00:26
85
原创 RK3588 本地clion远程断点调试开发板程序
等待install完成后(编译完成日志与linux下直接cmake编译一致),可以看到右边的调试栏里所有的openGauss的程序已经进入可运行状态,这样就可以选择任意组件进行调试了。进入clion菜单File->Settings->Tools->SSH Configurations,添加一个linux的远程连接,下面的几个服务都会用到。配置本地与开发板的项目目录映射,Excluded Paths配置不需要同步的文件目录。在断点后的单步/步入/步出/全速执行均可正常执行,现在远程调试功能已经ready。
2025-03-06 10:44:07
535
原创 C++ thread joinable和join释放线程资源
在C++中,当你使用类创建线程时,线程的执行是异步的。这意味着主线程可以继续执行其任务,而新创建的线程将并发地执行其函数。为了确保资源得到正确管理,特别是在线程完成执行并退出时,你需要适当地处理这些线程。
2025-03-06 10:31:48
25
原创 C++ lock_guard和mutex的使用方法
std::mutex和是 C++ 标准库中用于多线程同步的工具,主要用于防止多个线程同时访问共享资源,导致数据竞争问题。std::mutex是一个用于互斥锁的类,提供了锁定(lock)和解锁(unlock)的功能。
2025-03-06 10:21:45
69
原创 C++ 线程池的实现原理及回调函数的使用
当有新的任务进来,从线程池中取出一个空闲的线程处理任务然后当任务处理完成之后,该线程被重新放回到线程池中,供其他的任务使用。当线程池中的线程都在处理任务时,就没有空闲线程供使用,此时,若有新的任务产生,只能等待线程池中有线程结束任务空闲才能执行。任务队列负责存放主线程需要处理的任务,工作线程队列其实是一个死循环,负责从任务队列中取出和运行任务,可以看成是一个生产者和多个消费者的模型。在上述的场景中必然会频繁的创建和销毁线程,这样的开销相信是不能接受的,此时线程池技术便是很好的选择。
2025-03-06 10:14:35
33
原创 C++ 标准库tuple类型详细介绍
在C++中,std::tuple是一个标准库类型,它允许你在单个对象中存储多个不同类型的值。与struct)类似,std::tuple是一种将不同类型的值聚合在一起的方式,但std::tuple更为灵活,可以动态地存储任意类型和数量的元素。
2025-03-06 10:06:44
22
原创 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
36
原创 Orange pi3 LTS Ubuntu22.04通过源码编译的方式安装opencv(C++版)
硬件:orangepi 3 LTS之前安装opencv的时候遇到了很多奇奇怪怪的错误,所以干脆重新写入系统后开始安装。安装Ubuntu22.04的过程按照官方提供的用户手册来操做官方用户手册下载链接:http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3-LTS.html。
2025-03-03 13:44:42
38
原创 RK3588 编译opencv&opencv_contrib记录
如果上述问题确认无误但还是出错,请查看cmake后的消息中含有error,failed,not等关键字的信息,然后百度或谷歌,如果成功编译后在控制台继续输入make -j8,然后经过漫长的等待,完成后再输入make install,完成后就可以去你指定的安装目录下查看了。需要opencv和opencv-contrib的版本号保持一致,如下载opencv-4.5.1和opencv_contrib-4.5.1。网络搜索并下载这些文件,放到指定目录。该文件不需要下载,可以在opencv文件夹中找到,将。
2025-02-28 17:17:44
102
原创 RK3588 本地开发环境配置
Rockchip MPP 库的安装通常需要从官方源获取开发包。如果以上方法仍无法解决问题,建议查阅 Rockchip 官方文档或社区支持论坛获取更详细的编译指导。若官方源未直接提供此包,可能需要从源码编译(参考下文)。从 Rockchip 官方仓库获取 MPP 源码(如。编译时需指定链接库路径和库名(如。编译完成后,头文件(如。
2025-02-27 14:24:28
89
原创 C++ pybind11 安装
在C++中使用Python的字典(py::dict),你需要通过Python的C API来实现,或者使用一些第三方库,如pybind11,它提供了一种更现代、更直观的方式来集成Python和C++。
2025-02-27 10:45:23
95
原创 C++ 如何表示dict
在C++中,可以使用std::map或std::unordered_map来表示字典。std::mapstd::map是一种有序的关联容器,键值对按键排序。它使用红黑树实现,保证了键的唯一性和有序性。创建和使用std::map的示例代码如下:
2025-02-27 10:40:03
42
原创 RK3588 wrapbuffer_virtualaddr是什么意思
函数的作用是将虚拟内存地址映射到物理内存地址,以便在图形处理过程中使用。这个函数通常用于设置图形缓冲区,使其能够被RGA模块访问和处理。例如,在绘制矩形框的函数。结构体,并将其设置为指定的图像数据、宽度和高度,以及格式为BGR_888。中,该函数被用来设置图像数据的虚拟地址,以便RGA模块能够对其进行操作1。函数将虚拟地址映射到物理内存地址,以便RGA模块可以访问和处理这些数据1。的上下文中,这个函数主要用于处理图像数据和进行图形操作。是一个函数,用于将虚拟地址映射到物理内存地址。
2025-02-27 10:28:05
37
原创 RK3588 wrapbuffer_fd是什么意思
wrapbuffer_fd是一个函数,用于将输入输出的图像参数转化为统一的rga_buffer_t结构,作为IM2D图形库用户API的输入参数。在使用IM2D图形库进行图像操作之前,需要调用此函数来准备图像数据。,用于将输入输出的图像参数转化为统一的结构,作为用户API的输入参数。在使用IM2D图形库进行图像操作之前,需要调用此函数来准备图像数据。
2025-02-27 10:25:52
25
原创 C++ std::queue的front和pop的区别
功能:front函数返回队列头部元素的引用,但不删除该元素。如果队列为空,调用该函数将导致未定义的行为1。用途:通常用于查看队列头部的元素,而不移除它。在需要查看但不移除队列头部的元素时使用。pop操作功能:pop函数移除队列头部的元素,但不返回该元素的值。如果队列为空,调用该函数将导致未定义的行为1。用途:通常用于移除队列头部的元素,当需要从队列中删除通过理解这两个操作的区别和用途,可以更有效地使用std::queue进行先进先出(FIFO)的数据结构操作。
2025-02-27 10:24:35
53
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
Seata二次开发源码
2023-02-21
ShardingSphere-4.1.1 二次开发源码
2023-01-03
RocketMQ-Connect 二次开发源码
2023-01-03
Kubernetes Crictl 1.20.0安装包,用于操作Continered容器命令集
2022-12-08
Kubernetes CRI Containerd 1.6.4 运行时容器安装包
2022-12-08
libseccomp 2.5.1版本,修复Containerd不兼容问题的组件包
2022-12-06
优秀的UI自动化测试框架
2022-08-28
优秀的自动化测试框架。
2022-08-28
自动生成指定大小测试文件。
2022-07-11
clickHouse备份工具1.3.1:clickhouse-backup-linux-amd64.tar.gz
2022-03-07
datax-elasticsearch-master.zip
2021-09-09
HDFS集群数据迁移怎么做?
2022-11-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人