- 博客(60)
- 收藏
- 关注
原创 QNativeSocketEngine::bind() was not called in QAbstractSocket::UnconnectedState
摘要:Qt中重复绑定UDP套接字时会出现状态冲突错误,主要因套接字已处于BoundState而bind()要求UnconnectedState。解决方案包括:1)绑定前关闭套接字释放资源;2)检查状态机合规操作;3)设置端口重用选项。关键改进点在于状态检查、资源管理和错误处理,需验证端口占用情况确保正常释放。建议添加调试输出并使用netstat命令观察端口状态。
2025-12-23 22:20:54
218
原创 Ubuntu 24.04-国内镜像源替换
本文介绍如何将Ubuntu 24.04的软件源替换为阿里云镜像。首先备份原始配置,然后修改主仓库和安全源的URIs为阿里云地址。验证配置后执行apt update确认更新源是否生效。文中还提供了清华大学、中科大等国内镜像选项,并强调Ubuntu 24.04必须使用DEB822格式配置文件。注意事项包括保持密钥路径不变、网络超时处理等。替换后可提升下载速度,备份文件可用于恢复原始配置。
2025-12-23 18:08:09
142
原创 qt-kits-警告:No C++ compiler,无法正常解析工程项目.pro文件
摘要:在Ubuntu 24.04系统中使用Qt 5.12.9时遇到项目无法打开的问题,通过终端安装gcc/g++和lsb-core等依赖包后仍报错。尝试修改软件源为清华/阿里云镜像未解决问题,最终安装lsb-release后成功打开.pro文件。文章还关联了关于Qt编译报错与lsb-core影响的扩展内容。
2025-12-22 20:03:17
661
原创 qt-初步编译运行报错-When executing step “Make“-无法启动进程“make“
本文主要解决Qt编译过程中出现的"无法启动make进程"问题。原因可能是缺少make编译器或依赖库(如lsb-core)。解决方案包括:1)安装编译依赖项(build-essential等);2)验证Qt构建套件配置路径;3)检查项目.pro文件配置;4)优化软件源为国内镜像加速下载。最终通过qmake重新生成Makefile解决问题。高版本依赖通常兼容低版本,无需强制安装LSB模块。
2025-12-22 20:01:30
412
原创 linux使用终端打开当前文件夹界面
在Linux终端中,可通过多种方式快速打开当前文件夹的图形界面:推荐使用通用命令xdg-open .,它会调用系统默认文件管理器;也可直接指定文件管理器如nautilus .(GNOME)、dolphin .(KDE)或thunar .(Xfce)。部分终端支持右键菜单直接打开,或通过拖拽文件夹到终端获取路径。常见问题包括命令未找到(需安装对应软件包)和权限问题(谨慎使用sudo)。对于远程服务器,需配置X11转发。xdg-open .是最推荐的跨平台解决方案。
2025-12-21 22:13:56
441
原创 VMware-挂载报错:no mountpoint specified
摘要:解决VMware共享文件夹挂载报错"error: no mountpoint specified"的方法。主要原因是路径格式错误,应将源路径(.host:/)和挂载点(/mnt/hgfs)分开指定。解决方案包括:1)修正命令格式;2)确保挂载点目录存在且有权限;3)检查VMware共享设置;4)验证VMware Tools状态。还需注意权限匹配、路径冲突等问题。
2025-12-21 22:05:19
284
原创 通过本地CMD关闭远程软件
摘要: 本文介绍了三种在Windows CMD中远程终止进程的方法。1) 使用taskkill命令,支持远程连接、进程筛选和强制终止;2) 使用简化的tskill命令,通过PID或进程名终止;3) 使用调试工具ntsd终止指定PID进程。演示案例展示了通过IP、用户名密码远程终止进程的操作。这些方法可提升系统管理效率,但需注意权限和安全性。
2025-12-20 22:04:03
410
原创 winDbg安装-以及安装路径
Microsoft Store安装的软件默认存储在系统隐藏文件夹中,主程序位于C:\Program Files\WindowsApps\,用户数据在C:\Users[用户名]\AppData\Local\Packages\。查找方式包括:通过开始菜单定位、设置中的"应用"列表查看,或直接在文件资源管理器中搜索。注意这些文件夹默认隐藏且需要管理员权限访问。如需修改安装路径,可在系统存储设置中调整,但仅影响后续安装的应用。
2025-12-19 21:57:49
291
原创 QNetworkReply-QNetworkAccessManager-put-manager没有销毁,继续下一个put注意事项
摘要: 针对Qt中QNetworkAccessManager持续调用put()可能导致QNetworkReply内存泄漏的问题,提出系统性解决方案: 明确所有权:使用智能指针(QScopedPointer或unique_ptr)管理reply对象; 信号触发清理:连接finished()/errorOccurred()信号至deleteLater()实现自动释放; 异常处理:通过QPointer监控对象有效性,避免悬垂指针; 批量管理优化:采用中央协调器模式统一管理并发请求,绑定父对象生命周期。
2025-12-19 21:42:50
680
原创 QNetworkReply-QNetworkAccessManager-put-内存申请注意事项
摘要:在Qt C++中执行manager->put(request, ftpsendfile)时,内存管理涉及多个层面。QNetworkReply对象由Qt自动管理,默认以manager为父对象,可通过deleteLater()释放。文件数据缓冲由Qt内部处理,用户无需直接操作。用户分配的QFile对象需手动管理或使用智能指针。关键注意事项包括确保文件对象在上传期间有效、优先使用流式传输减少内存占用,以及通过信号槽机制确保资源释放。
2025-12-18 21:21:58
505
原创 qt-QDataStream-写入bin文件有多余字符
本文分析了Qt中QDataStream写入QByteArray时自动添加4字节长度前缀的问题。原因在于QDataStream作为二进制序列化流,默认会为动态数据添加长度标识(如示例中的"00 00 00 04")。若需要直接写入原始数据,建议改用QFile的write()方法;若必须使用QDataStream,可通过调整流格式参数优化,但无法完全消除长度前缀。关键区别在于QFile::write直接输出原始字节,而QDataStream会添加类型/长度元信息。
2025-12-18 21:05:30
220
原创 QFileInfoList-基础-问题盘点
在Qt中,这种内存分配是必要的,但需注意大目录可能导致的内存开销,可通过分批处理或按需加载优化性能。与QFileInfo类似的,比比皆是,如果不对其加以管制,将会导致整个系统资源竞争激烈,最终卡顿,或者崩溃。在任何一个对内存有严格要求的项目中,规避QFileInfo等类似的内存异常申请,才是项目扩展的良好基础。你了解过,当一个文件夹过于庞大时,它所带来的威胁?一次简单的访问文件夹,或许没有什么问题,但如果短时间内反复访问一个正在增大的文件夹,你是否考虑过会出现什么情况?
2025-12-17 19:38:06
884
原创 QFileInfoList-避免另类的内存泄漏
在Qt中处理大型目录时,QDir::entryList()与QFileInfo的按需加载模式是一种典型的内存优化策略,核心逻辑是延迟加载(Lazy Loading)和数据分块处理。
2025-12-17 19:36:44
1538
原创 qt-lambda信号槽机制
本文探讨了Qt C++中lambda槽函数的生命周期管理问题。实验表明,lambda槽函数作为独立对象存在,即使使用std::function存储也会在传递过程中生成新对象。文章详细分析了不同场景下的生命周期规则:无捕获lambda独立存在;有捕获lambda的生命周期取决于receiver对象;若捕获指针/引用需使用QPointer等智能管理。关键结论指出lambda生命周期主要与捕获变量和receiver相关,而非信号发送对象。最后强调使用lambda槽函数时应确保其一次性使用特性,避免内存泄漏风险。最
2025-12-16 19:24:07
1256
原创 windows-ps1脚本-获取网线直连下文件路径中的文件名
摘要:该脚本用于自动化处理远程计算机文件夹访问操作。主要功能包括关闭指定程序(closeExe),为后续文件操作(如删除、添加、拷贝等)做准备。脚本通过计算机名($ComputerName)参数识别目标机器,实现跨设备文件夹访问,适用于批量自动化处理场景。执行时会显示处理状态("代码执行1!"),为文件管理操作提供前置条件。
2025-12-15 21:38:41
171
原创 ps1脚本-运行报错-并带有乱码
总结,本电脑中windows powershell在解码过程中使用的是GBK格式,因此当运行其它编码的脚本时,导致一些字符转移错误,因此才导致了报错。不要去尝试去修改脚本中的代码,甚至首先怀疑代码报错,首先要做的,是确保脚本运行无乱码,才是最最重要的!再次运行,本次案例,就不再报错。
2025-12-15 21:29:08
486
原创 windows-ps1-脚本-删除文件
该脚本用于批量删除指定网络共享路径(UNC路径)下的所有文件,并返回操作结果。锁定文件:需配合Unlocker工具先解锁。使用-Force参数会跳过系统文件保护。隐藏文件:包含-File参数时自动包含。只读文件:自动移除只读属性后删除。不可恢复操作,建议先备份。
2025-12-14 22:58:56
386
原创 烤鸡-跑分测评-图吧工具-渲染办公参考
本文提供了电脑性能测试的几个关键指标:1)"一键烤鸡"测试用于评估3D游戏和渲染性能,检测卡顿和温度表现;2)磁盘读写速度测试对处理大型渲染文件至关重要;3)色域测试决定了色彩丰富度,数值越大效果越好;4)屏幕坏点与漏光测试影响视觉体验,即使高色域配置也可能因漏光而降低效果。这些测试参数共同构成了评估电脑硬件性能的重要标准。
2025-12-14 12:28:25
306
原创 qt-windows用户点击.exe,报错:缺少libgcc_s_seh-1.dll
libgcc_s_seh-1.dll是GCC编译器(如MinGW-w64)的核心运行时库,用于处理异常处理和基本运算。若目标电脑未安装GCC或相关工具链(如MinGW),该文件会缺失。
2025-12-13 23:24:16
187
原创 QDialog-基础讲解
摘要:QDialog是Qt中对话框窗口的基类,支持模态/非模态显示,可设置返回值、默认按钮和尺寸调整手柄。对话框默认居中显示在父窗口上,但需设为模态才能确保始终置顶。文章通过个人信息记录对话框的代码示例(包含表单布局和保存按钮),演示了QDialog的实际应用。同时解答了对话框置顶时的界面交互问题,指出使用exec()方法可实现模态对话框,阻止用户操作其他窗口,并提供了相关技术文章的参考链接。
2025-12-13 00:10:32
1141
原创 qt-lambda-疑问
摘要: 本文探讨了Qt信号槽机制中lambda槽函数的内存管理问题。lambda本质是闭包对象,由编译器生成匿名类实例,其生命周期取决于使用场景:栈分配时随作用域销毁,堆分配时需手动管理。全局信号发送者多次绑定lambda会导致内存增长,因每次绑定都新建闭包对象。局部发送者因作用域限制易引发bug且无实用价值。通过匿名类结构分析,解释了值捕获/引用捕获的底层实现,并指出QTimer等场景下循环绑定lambda存在内存泄漏风险。案例代码演示了闭包对象的构造与调用过程,验证了理论分析。
2025-12-11 21:03:08
404
原创 qt-lambada-报错-in capture list does not name a variable
摘要:代码错误显示在lambda表达式中直接捕获成员变量timerCatch失败,因为成员变量需要通过this指针捕获。解决方法是在捕获列表中显式捕获this指针([this]),使lambda能访问类实例的成员变量。
2025-12-11 20:52:30
198
原创 qt-pro文件名词解释
greaterThan(QT_MAJOR_VERSION, 4):这是一个Qt构建系统(qmake)的条件判断函数,用于检查宏变量QT_MAJOR_VERSION的值是否大于4,QT_MAJOR_VERSION 是Qt内置的宏变量,表示当前Qt的主版本号(如Qt 5.x.x对应值为5,Qt 6.x.x对应值为6)。这是一个用于 Qt 项目的 .pro 文件中的一行代码,用于指定项目类型为插件项目。在 Qt 中,可以创建多种类型的项目,包括应用程序项目、库项目和插件项目。
2025-12-11 20:48:49
927
原创 c-守护进程练习
这个简单的例子展示了如何在嵌入式Linux环境下创建一个基本的守护进程。实际应用中,你可能需要根据具体需求调整守护进程的功能,比如增加更复杂的错误处理机制、支持配置文件、或者通过网络发送警报等。希望这个案例能帮助你更好地理解和学习守护进程的概念及其在嵌入式系统中的应用。好的!我将通过一个详细的案例,帮助你理解嵌入式系统中守护进程(Daemon)的设计和实现。我们将以嵌入式Linux环境为例,设计一个用于周期性采集传感器数据的守护进程。
2025-03-14 23:04:04
254
原创 ubuntu-linux-系统用户界面无法显示-弹出报警框!
请创建第二用户或者准备u盘启动盘(ubuntu系统就行)!原因:本人电脑在后续的开机过程中,启动程序有报错,导致用户使用界面无法出现。与是可以来回切换的!
2025-03-14 11:01:04
469
原创 c-线程创建,同步互斥,互斥锁;
互斥锁(Mutex)用于保护共享资源,确保同一时间只有一个线程访问。lock(加锁) → 临界区操作 →unlock(解锁)。线程同步通过互斥锁协调多个线程的执行顺序,避免数据竞争(Data Race)。嵌入式场景注意事项避免死锁:确保加锁后一定会解锁。最小化临界区:减少锁的持有时间,提高系统实时性。
2025-03-13 21:27:39
985
原创 linux-Openmanus本地部署-AI-Agent初探
上来先不说其它的,先给你们稳定军心……要尝试的兄弟,放心尝试,占用空间并不大,部署下来,不超过10G。
2025-03-12 17:27:24
1924
原创 linux-pyenv安装
Bash 警告:有些系统将BASH_ENV变量配置为指向.bashrc。在这样的系统上,几乎肯定应该将行 eval "$(pyenv init - bash)"放入我指出来的两个文件,而不是.bashrc。到此一切都安装完毕,可以使用指令了!**警告:**一步步来。以使PATH更改生效。
2025-03-12 16:56:37
387
原创 uv pip install -r requirements.txt-报错,python版本过低
需要 Python ≥3.11,但你的环境是 Python 3.10.12。
2025-03-12 16:21:22
1163
原创 c-进程间通信(IPC)综合实现
IPC 机制特点适用场景共享内存高速、无拷贝,需同步机制(如信号量)大数据量交换(如视频流处理)信号量解决资源竞争,支持进程/线程同步临界区保护消息队列结构化数据,支持优先级,内核持久化进程间命令传递管道简单单向通信,内核缓冲区父子进程简单数据流信号异步通知,仅传递信号编号异常处理或事件通知这里的案例里面,我留了一个坑,有兴趣的可以找出来,这或许对理解IPC有很大的帮助!
2025-03-11 17:39:05
413
原创 c-fork小结
在这一瞬间,它分身为二,分身1(父进程)获得“>0”的pid,分身2(子进程)获得“=0”的pid!需要注意的是,>0 的pid代表的是“子进程的pid",如:在案例**fork() && fork()**中,第一个pid1是进程2的标签,第二个pid1则是进程3的标签。你真正要在意的是,fork函数调用时的逻辑。我不重点描述,后面要干什么,我只重点描述,在分身这个过程会干什么!同样只有三个进程,看起来&&与||没什么区别,但如果使用if语句去判断,那将天差地别。在这里,我只简单,描述一下,用做相互验证。
2025-03-11 14:10:11
330
【windows无需安装】轻量级信息记录软件 - 独立运行无需额外依赖
2025-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅