- 博客(71)
- 收藏
- 关注
原创 Kylin系统日志分析
coredump路径 /var/lib/systemd/coredump。journal日志 /var/log/journal。kylin下系统日志路径。
2025-04-11 10:27:08
126
原创 自启动应用程序之DBus的自动启动机制
DBus服务可以通过.service文件配置,当客户端请求某个服务名时,如果服务未运行,DBus会启动它。按需启动:如果系统/会话总线上某个客户端(如应用程序)尝试调用 com.example.MyService 接口的 方法(method) 或订阅其 信号(signal),而该服务尚未运行,D-Bus 会根据 /usr/share/dbus-1/services/com.example.MyService.service 文件中定义的 Exec 命令启动服务进程。
2025-04-10 17:21:34
115
原创 自启动应用程序配置之etc/xdg/autostart
在 Linux 系统中,/etc/xdg/autostart/ 目录用于存放系统级的自动启动项(.desktop 文件)。这些文件遵循 FreeDesktop.org 的规范,定义了应用程序在用户登录时自动启动的规则。系统级 vs 用户级自动启动系统级:/etc/xdg/autostart影响所有用户,需管理员权限修改。用户级:~/.config/autostart仅影响当前用户,用户可直接编辑。
2025-04-10 16:47:39
80
原创 文件锁实现防止进程被拉起多次的
创建并锁定文件:尝试对指定文件(如 /var/run/myapp.lock)加排他锁。通过 flock 或 fcntl 对特定文件加锁,利用操作系统级别的锁机制实现互斥。非阻塞检测:若加锁失败,说明已有实例运行,新进程退出。保持锁:成功加锁后,保持文件描述符打开,直到进程结束。
2025-04-10 16:28:43
142
原创 root无权限修改文件内容处理
SELinux/AppArmor 可能禁止修改系统关键文件。通过以上排查,通常可以定位并解决问题。在 Linux 系统中,即使以。:文件可能被其他进程锁定或打开。:文件系统损坏可能导致无法写入。根目录)可能被挂载为只读(:文件所在的文件系统(如。• 终止相关进程后再操作。),则表示文件被锁定。)的权限可能阻止写入。
2025-03-24 10:36:20
419
原创 内核日志查看:dmesg命令
它主要用于显示系统启动时的硬件检测信息、内核日志以及运行时的硬件/驱动相关事件(如 USB 设备插拔、磁盘挂载等)。能帮助你快速定位系统底层问题,尤其在无 GUI 环境的服务器场景中非常实用!是 Linux 系统中用于。内核日志按优先级分类,可通过。
2025-02-08 15:44:24
612
原创 virt-manager ubuntu安装虚拟机使用
首先,确认你的CPU支持硬件虚拟化技术(IntelVT或AMD-V)。可以通过执行以下命令来检查。
2025-01-20 09:34:18
489
原创 包冲突解决
如果 无法解决包冲突问题,可以尝试以下方法逐步解决问题:运行以下命令查看具体冲突的包信息:或者:注意输出中是否提到哪些包之间存在冲突、依赖无法满足,或是否有无法安装的包。如果冲突是由某些包引起的,可以尝试先移除相关包:如果 无法完成,尝试使用更强制的方法:3. 清理和修复包管理状态运行以下命令清理残留的配置文件或下载失败的包:如果依然有问题,可以尝试检查是否有损坏的包:4. 尝试手动安装冲突依赖如果问题出在某些依赖无法满足,可以尝试手动安装:如果冲突依赖版本不在默认源中,可以尝试
2024-12-26 14:37:11
512
原创 VSCode 多工程联合调试
在 Visual Studio Code (VSCode) 中联合调试两个 C++ 工程,其中一个是进程,另一个是依赖库,你可以通过设置调试配置文件和使用来实现。
2024-11-08 10:20:07
720
原创 SSH无密码登录
按回车键接受默认文件位置,如果需要设置密码保护私钥,可以输入密码,否则直接按回车跳过。在Windows上生成SSH密钥对。打开“设置” -> “应用” -> “应用和功能”。搜索“OpenSSH Client”,选择并安装。点击“可选功能”,然后点击“添加功能”。2. 生成SSH密钥对。
2024-11-06 10:38:48
299
原创 SSH 获得 TTY 权限
在 Linux 系统中,通过 SSH 远程连接到服务器时,默认情况下你可能不会获得 TTY(终端)权限。这通常是因为 SSH 会话默认是非交互式的,或者某些安全策略限制了 TTY 的分配。
2024-11-06 09:58:42
613
原创 GCC/G++编译器_attribute__
是 C 和 C++ 编译器提供的一种扩展机制,允许开发者给函数、变量或类型添加额外的信息或元数据,以影响编译器的行为。这种机制主要用于 GNU 编译器集合(GCC)以及基于 LLVM 的 Clang 编译器等工具中。下面是一些常见的。
2024-09-04 18:50:43
378
原创 xdg-desktop-portal screencast接口获取图像数据并播放
定义一个回调函数,该函数将在每次 appsink 接收到新缓冲区时被调用。这个函数需要处理 GstBuffer 数据,并执行你需要的操作。从 GstBuffer 中获取 H.264 压缩数据。获取视频帧的尺寸。检查是否是关键帧(keyframe)。获取呈现时间戳。将这些信息填充到 VideoFrame 结构体中// 定义用户数据结构,可以包含任何你需要的数据// 尝试从 appsink 获取一个新的样本// 映射缓冲区中的数据// 获取视频信息。
2024-08-16 14:06:32
354
2
原创 git 合并多次提交
在 Git 中,如果你想要“合并”多个连续的提交(即第二,三等提交紧接在第一个提交之后,并且在同一分支上),Git 提供了重新构建提交历史的功能,比如使用。请注意,这种方法会改变提交历史,并且如果其他人已经克隆了你的仓库并且拉取了这些提交,那么你需要与他们协调如何处理这些更改。通常你会选择这两个提交之前的那个提交,这样才会把这两个提交包含进来。列表中的每一行代表一个提交,你可以通过修改这些行前面的指令来控制 Git 对每个提交的操作。,Git 会让你编辑一个新提交的信息,这个信息将用于合并后的提交。
2024-08-07 18:25:09
623
原创 git 创建应用patch
git patch命令实际上并不是git的直接命令,但可以通过一些组合命令来实现类似的功能。通常当我们谈论git patch时,我们指的是通过和git am或git apply来创建和应用补丁文件。
2024-08-06 18:16:28
827
原创 原始仓库更新同步到你的forked仓库
当你在 GitHub 或类似的平台上 fork 了一个仓库后,你可以在自己的仓库中进行修改和提交。但是,随着时间的推移,原始仓库可能会有更新,这时你可能希望将这些更新合并到你的 forked 仓库中。如果上游仓库的更改与你的本地更改有冲突,你需要手动解决这些冲突。其中 origin 是你的 GitHub forked 仓库的别名,默认情况下,origin 就是你自己的仓库。现在你可以将上游仓库的主分支(通常是 main 或 master)合并到你的本地主分支。这将会把上游仓库的更改合并到你的本地仓库。
2024-07-25 15:42:25
508
原创 基于Debian的Linux系统 sources.list内容解析
在Linux系统中,/etc/apt/sources.list 文件(对于基于Debian的系统,如Ubuntu)是一个非常重要的配置文件,它定义了APT(Advanced Package Tool)在哪些源(repositories)中查找和安装软件包。这个文件包含了一系列指向软件仓库的URL,以及与之相关的配置选项。#注释行,以 “#” 开头这里是注释,不会被APT解析解析说明:#:这是一个注释符号。在 # 后面的内容不会被APT解析或用于配置。
2024-06-26 14:03:12
937
原创 QVariant用法(AI ChaptGPT)
QVariant 是 Qt 中用于封装各种类型数据的通用类。它能够存储和传递几乎所有的 Qt 和用户定义的数据类型,并提供了方便的接口来访问和操作这些数据。总的来说,QVariant 是一个非常灵活和方便的类,用于在 Qt 中处理各种类型的数据。
2024-05-17 09:43:53
238
原创 Qt Doc
/ 定义一个自定义类型public:private:// 在类外使用 Q_DECLARE_METATYPE 宏将自定义类型注册到元对象系统中// 注册自定义类型到元对象系统中// 创建一个 QVariant 并存储自定义类型的实例// 从 QVariant 中获取自定义类型的实例并输出return 0;
2024-05-16 18:33:52
257
原创 QMetaObject::invokeMethod(AI ChatGPT)
需要注意的是,QMetaObject::invokeMethod() 是一种动态调用方法的机制,因此如果方法名称或参数与实际不符,或者方法不存在,编译器不会给出错误提示,而是在运行时发生错误。QMetaObject::invokeMethod() 是一个非常有用的函数,它允许你通过名称调用 QObject 的方法,包括槽函数。type 是连接类型,通常是 Qt::DirectConnection,Qt::QueuedConnection 或者 Qt::AutoConnection。obj 是目标对象指针。
2024-05-16 16:15:06
275
原创 QML与C++信号槽处理的几种方式处理
width: 200")在这个QML文件中,定义了一个名为sendMessage的信号,它将一个字符串参数传递给与之关联的槽。Q_OBJECT在C++代码中,首先需要定义一个用于处理信号的类(在这个例子中是MessageHandler类),并在其中定义一个槽函数handleMessage,用于处理从QML发送过来的消息。然后,通过qmlRegisterType将这个类注册到QML类型系统中。
2024-05-16 16:02:06
380
原创 QML 事件响应(AI KIMI)
在 Qt Quick 应用程序中,事件响应通常在 QML 文件中处理,因为 QML 提供了一种声明式的方式来定义用户界面和其交互。QML 允许开发者直接在 QML 代码中定义事件处理器,如鼠标点击、触摸事件、键盘输入等。
2024-05-16 15:04:16
373
原创 QML 终端打印实现(AI KIMI)
创建一个 C++ 插件,该插件提供打印到终端的功能,然后在 QML 中使用这个插件。// 在 C++ 插件中Q_OBJECTpublic:// 假设你已经正确注册了类型并包含了相应的头文件");在 QML 应用程序中打印到终端通常需要使用 C++ 后端功能,因为 QML 主要用于定义用户界面,而不是执行系统级操作。以上方法提供了几种不同的实现方式,你可以根据你的具体需求选择适合的方法。
2024-05-16 15:02:30
401
原创 qmake添加编译链接参数
在qmake中添加编译参数,可以通过在项目的.pro文件中使用QMAKE_CXXFLAGS和QMAKE_LFLAGS(对于链接器参数)来设置编译器和链接器的选项。如果要添加特定于特定平台的编译器选项,可以使用win32、macx等qmake条件。PWD是qmake的变量,表示当前目录。
2024-05-14 15:43:38
1114
原创 Linux CAN信号收发模拟
在Linux环境下进行CAN(Controller Area Network)信号的模拟收发通常需要使用一些工具和库。这将在虚拟CAN接口vcan0上发送一个标识符为0x123,数据为0x1122334455667788的CAN消息。
2024-04-25 10:38:32
664
原创 OpenGL 扩展
但需要注意的是,这个函数返回的是一个以空格分隔的字符串,其中包含了当前上下文中支持的所有扩展的名称,而不是一个结构化的列表。ARB(Architecture Review Board)扩展:由 OpenGL 架构审查委员会(ARB)发布的扩展,是 OpenGL 标准的一部分,通常具有广泛的支持。EXT(EXTension)扩展:由 OpenGL 社区或者其他组织发布的扩展,通常是为了填补标准中的空白或者提供实验性的功能。着色器(Shader)语言扩展。
2024-04-15 09:56:02
530
原创 SVM支持向量机
它的基本原理是找到一个最优的超平面来划分不同类别的数据点,使得不同类别的数据点能够被有效地分开,并且具有最大的间隔(margin),同时尽可能地避免分类错误。总的来说,支持向量机通过寻找一个最优的超平面来将不同类别的样本点分开,使得间隔最大化,从而实现对数据的有效分类。在更高维度的空间中,超平面是一个超平面。在实际问题中,数据可能不是线性可分的,这时就需要使用核函数将数据映射到高维空间中,使其在高维空间中线性可分。SVM的目标是找到一个超平面,使得样本点到这个超平面的距离(即间隔)尽可能大。
2024-03-20 15:04:05
523
原创 Canny 边缘检测算法原理
通过设置高低两个阈值,将边缘像素分为两个部分:如果像素的梯度值超过高阈值,则被认为是强边缘;然后,通过边缘跟踪的方法,将弱边缘像素连接到强边缘像素,以形成完整的边缘。它具有良好的性能,能够在图像中准确地检测出边缘,同时抑制了噪声的影响。这一步主要采用了边缘跟踪的方法,将弱边缘像素与强边缘像素连接起来,以形成完整的边缘。总的来说,Canny 边缘检测算法具有很好的边缘检测性能,可以在图像中准确地检测出边缘,并且对噪声有一定的抑制能力,因此被广泛应用于图像处理领域。
2024-03-18 16:09:43
1903
原创 常用图像滤波器,图像增强
滤波器在图像处理中有各种各样的应用,它们可以用于去除噪声、平滑图像、增强图像特征等。在实际应用中,根据图像的特点和处理需求选择合适的滤波器非常重要。用于边缘检测,与Sobel类似,但对噪声更敏感。用于边缘检测,可以检测图像中的水平和垂直边缘。用于边缘检测,可以检测图像中的所有方向的边缘。通过多阶段的边缘检测,检测图像中的边缘。用于去除椒盐噪声(即黑白相间的噪声)。保留图像的边缘信息,而不会导致模糊。保留图像的边缘信息,同时平滑图像。平滑图像,减少图像的细节和纹理。平滑图像,同时保留边缘信息。
2024-03-16 14:56:30
1028
原创 git submodule基本用法
Git submodule 是 Git 版本控制系统的一个功能,它允许你在一个 Git 仓库中嵌套另一个 Git 仓库。这种功能通常用于管理项目中的依赖项或者子模块。这些是常见的 Git submodule 用法。子模块是管理项目依赖关系的有用工具,但也需要小心使用,特别是在团队协作中。添加子模块: 使用 git submodule add 命令可以将一个外部仓库添加为子模块到当前仓库中。这会将子模块更新到其远程仓库的最新提交。其中 是子模块的远程仓库地址,
2024-03-05 11:07:23
611
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人