- 博客(73)
- 资源 (3)
- 问答 (27)
- 收藏
- 关注
原创 .exe does not seem to be a Qt executable.
它收集的是能找到的 PE 导入依赖;运行时动态加载的插件可能需要另外补充。配置文件、MySQL、EMQX 和 VC++ 运行库仍按前面的流程准备。下载 Windows x64 包并解压,把工具所在目录加入。发布,应该按普通 Windows C++ 服务程序打包。pro文件有-=qt,说明这个项目当前不适合用。可以使用现成的 copypedeps.exe。把你项目第三方 DLL 所在目录也加入。,所以更新版本时需要另外处理旧文件。这些参数和复制行为来自。
2026-10-28 01:29:30
199
原创 桌面软件日志选型:如何根据项目需求挑选日志框架
追求轻量、高性能、跨平台、易集成 → spdlog(绝大多数C++桌面首选)已有Boost依赖 → Boost.Log小工具,不想加第三方库 → Qt消息回调手写日志需要崩溃dump,日志量小 → glog如果你需要,我可以给一份Qt项目完整spdlog集成方案,包含qDebug重定向、Release/Debug日志级别区分、日志路径自动适配Windows/Linux、双滚动策略的完整代码。
2026-09-14 14:10:04
64
原创 从 CPU 到 GPU:高速缓存、指令并行与 CUDA 执行原理入门
用来实现对RAM数据的缓存,让CPU更快地访问它们存储层次上,位于CPU和RAM之间容量比RAM小但交换速度快cache对CPU的性能影响很大,CPU 运算速度快,而访问主存较慢,Cache 利用程序访问的局部性,减少 CPU 等待主存的时间。
2026-09-06 23:56:29
258
原创 二维码读码器(扫码相机)选型
每个码元像素:0.444 / 0.08 = 5.55 px 高于2‑4 像素安全阈值。QR code version 7: 45个*45个。单个码元尺寸:20 / 45 = 0.444mm。工作距离60mm,分辨率约0.08mm/px。扫码相机分辨率:0.08mm/px。二维码大小:20mm*20mm。
2026-09-04 10:09:33
44
原创 【ubuntu】代码打包后,将可执行文件设为开机自启动
这是最原生、最简洁的方法。systemd 本身就能监控进程,只要主进程退出(挂掉),它就会自动重启。:禁用重启频率限制,防止 systemd 因频繁重启而停止尝试。# 重新加载 systemd,使其识别新的服务文件。# 将下面的路径替换为你的可执行文件的实际路径。# 取消重启次数限制,确保无限次尝试重启。# 进程挂掉后,等待 20 秒再重启。:指定了在重启前等待 20 秒。(这个命令会停止服务,并且。创建一个新的服务文件,例如。正常停止的,都会自动重启。# 设置服务开机自启。
2026-08-18 09:19:16
174
原创 【ubuntu】工控机网络配置
会不会影响,取决于终端修改的是“当前状态”还是 NetworkManager 的连接配置。这些通常都是临时设置。这很可能与你的现象有关:拔插或链路重连后,NetworkManager重新启用了默认连接配置。修改的是 NetworkManager 的持久配置,图形界面和终端共享同一套配置,一般不会互相冲突。
2026-08-06 10:18:26
257
原创 网线连接工控机后经常断开,必须重新插拔才恢复的问题
应使用屏蔽网线,动力线与网线分开布线,并正确处理屏蔽层和设备接地。这种“网线连接工控机后经常断开,必须重新插拔才恢复”的问题,通常是物理链路、网卡配置或网络设备异常。重新插拔会重新触发网卡的链路协商,所以能暂时恢复。网线弯折、压伤,水晶头松动,线序或压接质量差。驱动版本不兼容、网卡驱动崩溃也可能导致断开。如果物理连接没有真正断开,只是“无法通信”,可能是固定IP重复、网关配置错误或ARP异常。建议先按“更换网线 → 更换交换机端口 → 关闭网卡节能 → 更新驱动 → 检查IP冲突”的顺序排查。
2026-08-05 16:02:52
262
原创 Flutter 开发报错:Android cmdline-tools 缺失 环境排查与完整修复方案
Android Studio 界面检索异常是工具缺失排查受阻的主要原因,界面无法操作时优先采用手动放置组件文件方式补全。Java 版本不兼容无需手动卸载安装本地 JDK,直接关联编辑器自带 JDK 即可快速解决报错。环境变量、Flutter 内部路径、工具物理目录三者必须保持统一,路径偏差会直接导致工具调用失败。SDK 组件谨慎卸载操作,误删除组件会扩大故障范围,优先采用路径修复、组件补全方式处理异常。
2026-05-22 19:01:07
631
原创 【C++面试题】深拷贝/浅拷贝
对于普通数据类型(基础类型如intdoubleboolchar以及不包含指针的简单structclass),深拷贝和浅拷贝没有任何区别。
2025-12-31 09:28:17
196
原创 【C++笔试题】递归判断数组是否是递增数组
递归判断长度为N的数组是不是递增数组。递归方法:记录最大的值,如果比这个值大,则继续,否则终止.这里参数已经给出,所以我们要明确的是,参数更新的逻辑。一个是递归函数fun(a, N - 1)检查数组最后两个元素之间的大小关系。下一次传入的参数应该是N-1。3.明确单层递归的逻辑。另一个是大小判断逻辑。
2025-12-30 12:05:28
223
原创 vector学习笔记
栈的大小通常只有几 MB(例如 8MB)。如果你试图在栈上创建一个巨大的数组(比如。(运行时自动调整),vector更重要的一点是能自动管理内存。是存在迭代器失效现象,补充一下vector迭代器失效的几种情况。把数据放在堆上,所以它可以容纳成千上万个元素,而且可以。:堆的大小仅受物理内存限制(几个 GB 甚至 TB)。它是一个在栈上的控制者,管理着在堆上的数据。如果运行下面的程序,会出现段错误。当超出作用域时,栈上的。:虽然数据在堆上(正常需要手动。这也是RAII机制的体现。距离很近,都在堆上。
2025-12-26 21:00:22
489
原创 OpenMP学习笔记
完成后,线程组合并(join)到一起,除主线程以外的所有线程都被“销毁”,主线程继续并执行程序的顺序部分。之后,主线程可能会看到又一个有利于并行执行的代码块。然后,它将创建一个新的可能会有不同数量的线程组,并继续一个新的并行区域,直到线程组完成工作之后再合并。在这个 1 亿次的循环中,CPU 核心把大量时间花在了争抢缓存行的所有权(Cache Coherency 协议,如 MESI)上,而不是在做计算。其实就是按照顺序分块,一个块给一个线程执行,例如,线程 0 处理前半部分,线程 1 处理后半部分。
2025-12-23 14:34:47
640
原创 C++中不能复制只能移动的类型
当你设计一个 C++ 类时,如果这个类管理着一个无法安全共享禁用拷贝构造函数和拷贝赋值运算符(C++11/14/17 通常使用= delete实现移动构造函数和移动赋值运算符(将底层资源指针/句柄从源对象转移到目标对象,并清空源对象)。通过这种设计,C++ 编译器强制执行了资源所有权的转移,保证了资源的生命周期安全,这是现代 C++ 编程中一个重要的设计范式。
2025-12-16 22:27:17
395
原创 C++多线程并发学习路线
对象销毁前没有 join 或 detach 会导致程序崩溃 (terminate)。,用于线程间的通信(例如:生产者-消费者模型)。有时候你不需要管理原始线程,只需要结果。(对于简单的整数加减,比锁快得多)。主线程与子线程的关系。多线程最难的地方不是开启线程,而是。(最简单的多线程启动方式)。避免频繁创建销毁线程的开销。如何避免多个锁互相等待。如果不加控制,就会发生。(自动 join),这是起点,你需要熟悉。
2025-12-08 20:18:01
416
原创 spdlog日志库
它会持续将日志追加到同一个文件中,直到文件系统达到最大容量或程序被手动终止。但这可能导致日志文件会无限制增大。日志级别:trace < debug < info < warn < error < critical。查看上述文件夹中的内容可知: rotating.txt中是最新写入的内容。3中是最早写入的内容。设置级别之后,低级别的日志会被自动过滤。logger:日志记录器。sink:日志接收器。
2025-08-21 15:37:23
559
原创 Git用法记录
>>>>>> [commit哈希] 标记从其他分支合并过来的新代码(这里的 c472b4b... 是提交哈希)<<<<<<< HEAD 标记当前分支(或本地)的旧代码。======= 作为分隔线。
2025-08-03 11:48:15
248
原创 gcc g++ makefile CMakeLists.txt cmake make 的关系
写代码 → 写CMakeLists.txt → cmake生成Makefile → make编译 → 得到可执行文件。定义编译规则、依赖关系和构建目标。可以手动编写,也可以由CMakeLists.txt自动生成。构建工具,执行Makefile中定义的构建规则(调用gcc/g++来完成实际编译工作)写代码 → 写Makefile→ 直接用make编译 → 得到可执行文件。读取CMakeLists.txt文件,生成Makefile。
2025-08-01 19:15:47
275
2
原创 【QT报错】程序异常结束或读取不到配置文件的原因
应该把.dll文件直接放在.exe同一个目录下,而不是把包含.dll文件的文件夹放在.exe同一个目录下。排除代码错误之后,发现是链接库的问题。
2025-07-15 15:49:05
538
原创 RPC/gRPC入门学习
RPC = Remote Procedure Call, 即远程过程调用,是一种构建分布式、基于客户端-服务器的协议。RPC允许开发人员使用函数调用的方式而非网络细节的方式,简化了网络的复杂性,从而促进了将软件分布在不同系统上的过程。RPC的工作原理是允许一个程序(客户端)直接调用另一台机器(服务器)上的程序(函数)。当进行RPC调用时,调用参数会被打包并通过网络传输到服务器,服务器会解包这些参数,执行所需的程序,并将结果返回给客户端。1.
2025-07-06 16:23:57
539
原创 QT报错:Corrupt JPEG data: premature end of data segment
打开电脑自带的相机软件,发现同样花屏。用的是USB相机,拔下USB接口重连,问题解决。QT出现这个问题,并且显示的照片是花的。
2025-06-25 20:38:21
313
原创 QT 查找引用
1.点击Find References to Symbol Under Cursor。我发现我的QT查找引用之后,不直接显示引用的地方,还要多一步操作。
2025-06-18 10:48:00
297
原创 IP地址和子网掩码
IP 地址由 “网络部分” 和 “主机部分” 组成,例如10.16.12.34。子网掩码决定了哪部分是网络地址,哪部分是主机地址。子网掩码255.255.255.0(即/24)表示:前 24 位是网络地址(10.16.12),后 8 位是主机地址(34)子网掩码255.255.0.0(/16)表示前 16 位是网络地址(10.16),后 16 位(12.34)是主机地址。
2025-06-16 10:02:45
245
原创 【QT】JSON数据格式
JSON是一种轻量级数据交换格式,其文本格式完全独立于其他编程语言来进行数据的存储、分类与显示,被目前国内主流的物联网平台所广泛采用。JSON保留了C语言家族的编程习惯,支持多种服务端语言。键key 必须是字符串,值value 可以是字符串, 数字, 对象, 数组, 布尔值或 null。一个JSON对象包含多个。
2025-06-11 11:04:44
262
原创 【QT】websocket记录
Qt 中,使用 QWebSocket 类来创建 WebSocket 客户端,并通过 connectToServer 方法连接到服务器。只需要提供服务器的 URL(包括 IP 地址和端口),而不需要关心客户端的 IP 和端口。
2025-06-08 15:40:57
173
原创 qt局部事件循环使用步骤
事件循环:在事件循环中,不断获取下一个事件然后处理。事件放在事件队列中,从事件队列中取出对应的事件进行处理。(3) 编写收到某个响应后退出事件循环的程序。如qt接收到某个信号后可退出事件循环。上述步骤是一个同步操作,会一直执行事件循环,直到某个事件触发退出事件循环的函数。一般在非主线程中设置局部事件循环,不会阻塞主线程。(1) 定义一个事件循环。(4) 开始事件循环。
2025-06-03 20:50:12
257
原创 【QT】理解QT机制之“元对象系统”
如果在基类中声明了虚函数,并在派生类中重写了这些虚函数,当基类指针或引用指向派生类对象并调用虚函数时,会根据对象的实际类型而不是指针类型来确定调用的函数。例如,下面这段程序,main函数中,父类指针指向派生类对象。父类Parent中的come被声明为虚函数,在main函数中,虽然指向两个派生类对象的是父类指针,但是运行时还是调用派生类中的come()函数。输出:但是如何判断基类指针到底指向的那个对象呢?这就用到了RTTI机制。RTTI提供了两个非常有用的操作符:dynamic_cast和typeid。
2025-05-29 21:17:17
2266
原创 什么是系统调用
系统调用是一种编程方式,计算机程序通过这种方式向执行它的操作系统内核请求服务。系统调用是程序与操作系统交互的一种方式。计算机程序在请求操作系统内核时进行系统调用。系统调用通过应用程序接口(API)向用户程序提供操作系统的服务。系统调用是进入内核系统的唯一入口点,并且在内核模式下执行。
2025-05-29 15:31:52
389
原创 【ORB-SLAM3】CreateNewKeyFrame()函数阅读
表示构造一个关键帧需要的参数为:Frame类型的当前帧:mCurrentFrame;从代码的角度看,通过构造关键帧,将普通帧 mCurrentFrame 携带的信息复制给 关键帧pKF。①如果这个点对应在上一帧中的地图点没有, 或者创建后就没有被观测到,那么就需要生成一个临时的地图点。④停止生成地图点的条件:当前的点的深度已经超过了设定的深度阈值(35倍基线)&& nPoints已经超过100个点,说明距离比较远了,可能不准确,停掉退出。的特征点,深度值无效或为负的点会被过滤,并存储为。
2025-05-15 21:01:42
946
ROS进行cmake的时候显示缺少srospy怎么办。(标签-ar|关键词-file)
2022-04-11
matlab波浪号是什麽意思
2022-04-23
rostopic中为什么不显示我发布的话题
2022-05-12
if后边有个逗号,程序怎么执行呢
2022-05-13
rviz雷达扫描的地图和map组件加载的图位置有偏移怎么办?
2022-05-14
xml文件看看哪里错了
2022-05-08
Gazebo9没有libgazebo_ros_diff_drive.so文件
2022-05-11
gazebo不显示机器人模型,只显示空的世界环境。
2022-05-08
ROS启动rviz的时候出现这个提示是怎么回事?
2022-05-07
C++ include 包含和上三级文件夹同级别的文件的下三级文件怎么办
2022-04-26
t=linspace(0,1,n2)'; 为什么加个引号
2022-04-23
matlab这一句什么意思
2022-04-08
matlab 二维数组里放两个坐标什么意思
2022-04-07
matlab plot函数在这里怎么用的
2022-04-06
matlab已知树结构中的数值,怎么对他们进行三次样条插值?
2022-04-06
QT为什么UDP接收一次就程序崩溃了
2025-06-27
QT,UDP接收程序崩溃
2025-06-27
QT是只能跳转到函数定义吗
2025-06-17
QT捕获图片实现循环捕获的同时单独捕获
2025-06-05
QT信号槽连接的时候出现错误
2025-06-03
TCP socket的nextConnectionPending问题
2025-05-27
编写opencv程序时,关于opencv的头文件标红怎么办
2025-01-03
ORB-slam3怎么获得每个线程的运行时间??
2024-08-01
求详细解释C++这个函数的参数含义
2022-05-19
C++这一句啥意思呀std::pair<double, double> p_n;
2022-05-17
ubuntu里边的home/username/.gazebo文件夹不显示
2022-05-26
C++这一句什么意思 int rand_nu = rand()%10;
2022-05-17
VSCODE2019怎么打开某个函数
2022-05-17
ROS路径规划C++代码这一句什么意思
2022-05-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅