- 博客(80)
- 收藏
- 关注
原创 将一台已连接无线网络的 Windows 电脑通过网络线共享网络给另一台电脑
• 原理:在主机上创建一个“网桥”,将无线网卡和有线网卡桥接起来,客户机获取的 IP 地址将由主无线网络的路由器分配,与主机无线网络处于同一网段。• 设置:在主机的“网络连接”界面,同时选中无线网络适配器和有线以太网适配器,右键点击选择 “桥接”。◦ 在下方的“家庭网络连接”下拉框中,选择用于有线连接的另一台电脑的那个以太网适配器(通常名为“以太网”或“本地连接”)。搜索结果中还提到了另一种称为“桥接模式”的方法。◦ 找到代表您已连接的无线网络连接的适配器,右键点击它,选择 “属性”。
2025-09-19 13:09:55
1088
原创 libdrm 和 libgbm
项目libdrmlibgbm名称Direct Rendering Manager 用户空间库Generic Buffer Management 通用缓冲管理库所属层级低层(硬件封装接口)高层(缓冲抽象封装)主要用途提供对 DRM 内核接口的访问,如 GEM buffer 等为 EGL/OpenGL ES 提供平台无关的 buffer 接口常见场景DRM buffer 分配与管理分配 render target buffer,创建 EGLSurface所依赖的库内核 DRM 接口。
2025-08-15 16:09:27
824
原创 Git 工程迁移指南
Git 工程代码迁移完整指南将 Git 代码仓库从一个位置迁移到另一个位置(如跨平台迁移或改变存储路径)需要保存完整历史记录和分支结构,以下是专业高效的迁移流程:📌 核心迁移流程(完整历史保留)
2025-08-08 15:26:40
318
原创 软件包 qaxsafe 需要重新安装,但无法找到相应的安装文件
软件包 qaxsafe 需要重新安装,但无法找到相应的安装文件,通常是由于软件包数据库中有记录显示 qaxsafe 未正确安装或配置,导致 apt 认为它需要修复。即使已经安装了,可能安装过程中断,导致状态异常。
2025-05-30 13:57:28
289
原创 Kylin系统日志分析
coredump路径 /var/lib/systemd/coredump。journal日志 /var/log/journal。kylin下系统日志路径。
2025-04-11 10:27:08
383
原创 自启动应用程序之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
314
原创 自启动应用程序配置之etc/xdg/autostart
在 Linux 系统中,/etc/xdg/autostart/ 目录用于存放系统级的自动启动项(.desktop 文件)。这些文件遵循 FreeDesktop.org 的规范,定义了应用程序在用户登录时自动启动的规则。系统级 vs 用户级自动启动系统级:/etc/xdg/autostart影响所有用户,需管理员权限修改。用户级:~/.config/autostart仅影响当前用户,用户可直接编辑。
2025-04-10 16:47:39
734
原创 文件锁实现防止进程被拉起多次的
创建并锁定文件:尝试对指定文件(如 /var/run/myapp.lock)加排他锁。通过 flock 或 fcntl 对特定文件加锁,利用操作系统级别的锁机制实现互斥。非阻塞检测:若加锁失败,说明已有实例运行,新进程退出。保持锁:成功加锁后,保持文件描述符打开,直到进程结束。
2025-04-10 16:28:43
324
原创 root无权限修改文件内容处理
SELinux/AppArmor 可能禁止修改系统关键文件。通过以上排查,通常可以定位并解决问题。在 Linux 系统中,即使以。:文件可能被其他进程锁定或打开。:文件系统损坏可能导致无法写入。根目录)可能被挂载为只读(:文件所在的文件系统(如。• 终止相关进程后再操作。),则表示文件被锁定。)的权限可能阻止写入。
2025-03-24 10:36:20
1048
1
原创 内核日志查看:dmesg命令
它主要用于显示系统启动时的硬件检测信息、内核日志以及运行时的硬件/驱动相关事件(如 USB 设备插拔、磁盘挂载等)。能帮助你快速定位系统底层问题,尤其在无 GUI 环境的服务器场景中非常实用!是 Linux 系统中用于。内核日志按优先级分类,可通过。
2025-02-08 15:44:24
1483
原创 virt-manager ubuntu安装虚拟机使用
首先,确认你的CPU支持硬件虚拟化技术(IntelVT或AMD-V)。可以通过执行以下命令来检查。
2025-01-20 09:34:18
732
原创 包冲突解决
如果 无法解决包冲突问题,可以尝试以下方法逐步解决问题:运行以下命令查看具体冲突的包信息:或者:注意输出中是否提到哪些包之间存在冲突、依赖无法满足,或是否有无法安装的包。如果冲突是由某些包引起的,可以尝试先移除相关包:如果 无法完成,尝试使用更强制的方法:3. 清理和修复包管理状态运行以下命令清理残留的配置文件或下载失败的包:如果依然有问题,可以尝试检查是否有损坏的包:4. 尝试手动安装冲突依赖如果问题出在某些依赖无法满足,可以尝试手动安装:如果冲突依赖版本不在默认源中,可以尝试
2024-12-26 14:37:11
897
原创 VSCode 多工程联合调试
在 Visual Studio Code (VSCode) 中联合调试两个 C++ 工程,其中一个是进程,另一个是依赖库,你可以通过设置调试配置文件和使用来实现。
2024-11-08 10:20:07
869
原创 SSH无密码登录
按回车键接受默认文件位置,如果需要设置密码保护私钥,可以输入密码,否则直接按回车跳过。在Windows上生成SSH密钥对。打开“设置” -> “应用” -> “应用和功能”。搜索“OpenSSH Client”,选择并安装。点击“可选功能”,然后点击“添加功能”。2. 生成SSH密钥对。
2024-11-06 10:38:48
334
原创 SSH 获得 TTY 权限
在 Linux 系统中,通过 SSH 远程连接到服务器时,默认情况下你可能不会获得 TTY(终端)权限。这通常是因为 SSH 会话默认是非交互式的,或者某些安全策略限制了 TTY 的分配。
2024-11-06 09:58:42
780
原创 GCC/G++编译器_attribute__
是 C 和 C++ 编译器提供的一种扩展机制,允许开发者给函数、变量或类型添加额外的信息或元数据,以影响编译器的行为。这种机制主要用于 GNU 编译器集合(GCC)以及基于 LLVM 的 Clang 编译器等工具中。下面是一些常见的。
2024-09-04 18:50:43
484
原创 xdg-desktop-portal screencast接口获取图像数据并播放
定义一个回调函数,该函数将在每次 appsink 接收到新缓冲区时被调用。这个函数需要处理 GstBuffer 数据,并执行你需要的操作。从 GstBuffer 中获取 H.264 压缩数据。获取视频帧的尺寸。检查是否是关键帧(keyframe)。获取呈现时间戳。将这些信息填充到 VideoFrame 结构体中// 定义用户数据结构,可以包含任何你需要的数据// 尝试从 appsink 获取一个新的样本// 映射缓冲区中的数据// 获取视频信息。
2024-08-16 14:06:32
434
2
原创 git 合并多次提交
在 Git 中,如果你想要“合并”多个连续的提交(即第二,三等提交紧接在第一个提交之后,并且在同一分支上),Git 提供了重新构建提交历史的功能,比如使用。请注意,这种方法会改变提交历史,并且如果其他人已经克隆了你的仓库并且拉取了这些提交,那么你需要与他们协调如何处理这些更改。通常你会选择这两个提交之前的那个提交,这样才会把这两个提交包含进来。列表中的每一行代表一个提交,你可以通过修改这些行前面的指令来控制 Git 对每个提交的操作。,Git 会让你编辑一个新提交的信息,这个信息将用于合并后的提交。
2024-08-07 18:25:09
790
原创 git 创建应用patch
git patch命令实际上并不是git的直接命令,但可以通过一些组合命令来实现类似的功能。通常当我们谈论git patch时,我们指的是通过和git am或git apply来创建和应用补丁文件。
2024-08-06 18:16:28
1198
原创 原始仓库更新同步到你的forked仓库
当你在 GitHub 或类似的平台上 fork 了一个仓库后,你可以在自己的仓库中进行修改和提交。但是,随着时间的推移,原始仓库可能会有更新,这时你可能希望将这些更新合并到你的 forked 仓库中。如果上游仓库的更改与你的本地更改有冲突,你需要手动解决这些冲突。其中 origin 是你的 GitHub forked 仓库的别名,默认情况下,origin 就是你自己的仓库。现在你可以将上游仓库的主分支(通常是 main 或 master)合并到你的本地主分支。这将会把上游仓库的更改合并到你的本地仓库。
2024-07-25 15:42:25
699
原创 基于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
1183
原创 QVariant用法(AI ChaptGPT)
QVariant 是 Qt 中用于封装各种类型数据的通用类。它能够存储和传递几乎所有的 Qt 和用户定义的数据类型,并提供了方便的接口来访问和操作这些数据。总的来说,QVariant 是一个非常灵活和方便的类,用于在 Qt 中处理各种类型的数据。
2024-05-17 09:43:53
334
原创 Qt Doc
/ 定义一个自定义类型public:private:// 在类外使用 Q_DECLARE_METATYPE 宏将自定义类型注册到元对象系统中// 注册自定义类型到元对象系统中// 创建一个 QVariant 并存储自定义类型的实例// 从 QVariant 中获取自定义类型的实例并输出return 0;
2024-05-16 18:33:52
321
原创 QMetaObject::invokeMethod(AI ChatGPT)
需要注意的是,QMetaObject::invokeMethod() 是一种动态调用方法的机制,因此如果方法名称或参数与实际不符,或者方法不存在,编译器不会给出错误提示,而是在运行时发生错误。QMetaObject::invokeMethod() 是一个非常有用的函数,它允许你通过名称调用 QObject 的方法,包括槽函数。type 是连接类型,通常是 Qt::DirectConnection,Qt::QueuedConnection 或者 Qt::AutoConnection。obj 是目标对象指针。
2024-05-16 16:15:06
319
原创 QML与C++信号槽处理的几种方式处理
width: 200")在这个QML文件中,定义了一个名为sendMessage的信号,它将一个字符串参数传递给与之关联的槽。Q_OBJECT在C++代码中,首先需要定义一个用于处理信号的类(在这个例子中是MessageHandler类),并在其中定义一个槽函数handleMessage,用于处理从QML发送过来的消息。然后,通过qmlRegisterType将这个类注册到QML类型系统中。
2024-05-16 16:02:06
426
原创 QML 事件响应(AI KIMI)
在 Qt Quick 应用程序中,事件响应通常在 QML 文件中处理,因为 QML 提供了一种声明式的方式来定义用户界面和其交互。QML 允许开发者直接在 QML 代码中定义事件处理器,如鼠标点击、触摸事件、键盘输入等。
2024-05-16 15:04:16
444
原创 QML 终端打印实现(AI KIMI)
创建一个 C++ 插件,该插件提供打印到终端的功能,然后在 QML 中使用这个插件。// 在 C++ 插件中Q_OBJECTpublic:// 假设你已经正确注册了类型并包含了相应的头文件");在 QML 应用程序中打印到终端通常需要使用 C++ 后端功能,因为 QML 主要用于定义用户界面,而不是执行系统级操作。以上方法提供了几种不同的实现方式,你可以根据你的具体需求选择适合的方法。
2024-05-16 15:02:30
570
原创 qmake添加编译链接参数
在qmake中添加编译参数,可以通过在项目的.pro文件中使用QMAKE_CXXFLAGS和QMAKE_LFLAGS(对于链接器参数)来设置编译器和链接器的选项。如果要添加特定于特定平台的编译器选项,可以使用win32、macx等qmake条件。PWD是qmake的变量,表示当前目录。
2024-05-14 15:43:38
1415
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人