- 博客(523)
- 收藏
- 关注
原创 QtnProperty:一个基于 Qt 框架的第三方高级属性库
QtnProperty是一个基于Qt框架的高级属性管理库,提供比原生Qt属性系统更强大的功能。它支持树状属性层次结构、内置可视化编辑器、多对象批量编辑、属性状态管理以及序列化功能。核心特性包括:1)任意深度属性嵌套;2)变更前/后双重信号机制;3)完整的状态控制(禁用/隐藏/只读);4)内置丰富数据类型和自定义扩展能力;5)支持代码生成工具QtnPEG。该库特别适合开发需要复杂属性配置界面的应用,如编辑器、IDE和配置工具,通过统一API简化了属性管理流程,显著提升开发效率。
2026-05-01 20:30:48
440
2
原创 Qt程序设计涉及到的开发软件
Qt安装目录包含多个平台的开发工具链,主要分为三大类:1)MSVC2019_64工具集,含qmake/moc/uic等构建工具、Designer界面设计器、Linguist翻译工具及windeployqt部署工具;2)MinGW工具链,提供GCC兼容开发环境;3)WebAssembly专用工具链,支持浏览器端应用开发。各平台工具功能对应但适配不同目标环境,如wasmdeployqt替代桌面端的部署工具。工具按功能分为构建编译、UI设计、本地化支持、调试诊断等类别,通过标准
2026-05-06 21:40:50
394
2
原创 浅谈LLVM
LLVM是一套模块化、可重用的编译器基础设施,已成为现代C++开发的核心工具链。其采用三阶段架构(前端生成LLVMIR、优化器优化IR、后端生成机器码),通过Clang提供比GCC更快的编译速度和更优的错误提示。LLVM工具链包括Clangd(代码补全)、Clang-Tidy(静态分析)、Clang-Format(代码格式化)和LLDB(调试器),显著提升Qt开发效率。文章详细介绍了LLVM的安装配置、CMake集成方法,并提供了完整的Qt项目示例,展示如何利用LLVM优化构建流程和代码质量。建议开发者从C
2026-05-04 22:00:23
381
原创 WinFlex: Windows 平台的 Flex 词法分析器
WinFlex是Flex词法分析器生成器的Windows移植版本,用于将.l/.lex格式的词法规则转换为C/C++代码,实现字符流到记号流的转换。它完全兼容Flex语法,与Bison配合可构建编译器前端。安装简单,解压后配置PATH即可使用。典型使用流程包括编写词法规则文件(.l)、生成C代码并编译运行。WinFlex支持Visual Studio和CMake集成,适用于编译器开发、配置解析等场景。相比传统Lex,WinFlex具有Windows原生支持、高效性能等优势,是Windows平台词法分析器开发
2026-05-04 16:29:43
509
原创 Qt实现带多选功能的组合复选框
本文介绍了一个基于Qt的带复选框多选功能的掩码组合框QMaskComboBox的实现。该控件继承自QComboBox,通过uint64_t位掩码管理选项状态,使用QListWidget+QCheckBox实现多选下拉列表功能。核心特性包括:支持通过位掩码设置和获取选中状态;下拉框隐藏时发送selectMaskPopup信号通知当前掩码值;文本框显示选中项拼接结果,并通过工具提示显示完整选中项。实现关键点包括:重写hidePopup()方法发送信号、使用事件过滤器处理文本框点击、通过refresh()方法动态
2026-04-30 23:21:51
323
原创 CMake基础: Qt之qt5_wrap_ui
qt5_wrap_ui是Qt5提供的CMake宏命令,用于调用uic工具将.ui文件转换为C++头文件。该宏自动生成ui_<basename>.h文件,包含界面类定义和初始化代码。使用方式为qt5_wrap_ui(OUTPUT_VAR UI_FILES),生成的头文件需手动包含到项目中。相比现代AUTOUIC自动处理机制,qt5_wrap_ui更适合需要精细控制构建流程的场景。Qt6中保留了类似功能,但推荐使用更简洁的qt_add_ui命令。开发者可根据项目需求选择手动或自动UI文件处理方式。
2026-04-30 22:39:45
449
原创 WaitingSpinnerWidget: 一个高度可配置的自定义Qt等待加载动画组件
摘要: QtWaitingSpinner是一个轻量级自定义控件,用于在Qt应用中优雅地展示加载动画,避免GIF资源或自绘控件的缺点。支持C++(Qt5/6)和Python(PyQt/PySide)版本,提供丰富的定制选项,包括颜色、转速、线条样式等。集成方式灵活,可直接引入源码或通过库安装。支持模态对话框、异步操作等高级用法,并解决动画卡顿、样式不生效等常见问题,显著提升用户体验。 (字数:150)
2026-04-26 14:26:12
423
原创 HDF5: 大数据的 “超级容器“
HDF5是一种高效的二进制文件格式,专为存储和管理大规模科学数据而设计。它具有层次化结构(类似文件系统),支持多维数组存储,并集成了元数据管理功能。核心优势包括:高效部分读取能力,无需加载整个文件;内置压缩和并行I/O支持,适合TB级数据处理;自我描述特性确保数据长期可读性;跨平台兼容性支持多种编程语言访问。相比CSV、JSON等文本格式,HDF5在存储效率、访问速度和数据结构化方面具有显著优势,特别适合AI训练、科学计算等需要处理复杂多维数据的场景。其分块存储和虚拟数据集特性使其能够轻松应对数据规模的增长
2026-04-23 22:50:49
658
原创 C++中TAS和CAS实现自旋锁
TAS和CAS是CPU提供的两种基础原子指令,用于解决多线程并发问题。TAS(Test-And-Set)强制写入内存,适合简单自旋锁实现但多核性能差;CAS(Compare-And-Swap)条件写入,支持无锁编程,是多核高并发场景的首选。CAS可实现高性能自旋锁、无锁计数器及安全变量更新,相比TAS能显著减少缓存颠簸。测试代码展示了TAS和CAS自旋锁的实现差异,以及CAS在无锁计数器中的应用,证明CAS在现代并发编程中的优越性能和灵活性。
2026-04-23 21:47:35
282
原创 CMake进阶:宏CMakeFindDependencyMacro介绍
CMakeFindDependencyMacro 是 CMake 官方内置模块,用于在库的 XXXConfig.cmake 配置文件中安全查找依赖。其核心优势包括: 标准化:官方支持,无需手写宏代码。 自动处理参数:继承 QUIET/REQUIRED,提供友好错误提示。 优化依赖查找:避免重复查找传递性依赖(如菱形依赖 A→B→C→D)。 精准去重(CMake 3.26+):通过 SHA256 哈希区分不同参数组合的依赖。 使用方式: 在 XXXConfig.cmake 开头引入模块 inclu
2026-04-22 21:59:03
700
原创 MobaXterm:Windows 远程工作全能工具箱
MobaXterm是一款专为Windows设计的全能远程管理工具,集成了SSH、RDP、VNC等10+远程协议,内置X11服务器和Unix命令行工具。它支持多标签会话管理、自动SFTP文件传输、SSH隧道等功能,并提供便携版和专业版两种选择。使用时可轻松创建SSH连接、进行文件传输和端口转发配置,还能通过高级技巧优化会话管理和终端效率。适用于Linux服务器运维、嵌入式开发、数据库管理等场景,是提升跨平台工作效率的理想选择。
2026-04-21 22:22:24
494
原创 QLabel设置富文本,过长用省略号显示的方法
本文介绍了在Qt中使用QLabel显示富文本(HTML)时,原生setElideMode失效的问题及其解决方案。通过QFontMetrics类可以精准计算文本渲染尺寸,实现基于控件宽度的自动截断而非固定字数判断。文章详细讲解了QFontMetrics的核心方法,包括文本宽度计算、自动省略超长文本等,并提供了两种实用方案:简单方案通过固定汉字数量截断,推荐方案则根据Label宽度自动生成省略文本。特别强调了富文本需先转为纯文本计算,以及控件大小变化时需重算的必要性,为Qt界面开发中的文本显示问题提供了完整解决
2026-04-14 22:15:24
363
原创 cpolar(极点云): 一款主流的内网穿透工具
Cpolar是一款高效的内网穿透工具,支持HTTP/HTTPS/TCP等多种协议,可在Windows/macOS/Linux等平台运行。它通过反向代理和长连接技术,将内网服务安全映射到公网,解决NAT/防火墙隔离问题。安装简单,Windows解压即用,Linux支持一键脚本,macOS可通过brew安装。使用前需官网注册获取authtoken认证。核心功能包括:一键穿透本地服务(如80端口网站或22端口SSH)、Web管理界面(localhost:9200)、免费随机域名及付费固定域名选项。其底层采用&qu
2026-04-12 22:18:22
652
1
原创 windows和linux使用system启动进程是一样的吗?
摘要:本文分析了在Ubuntu系统中使用system()启动子进程时出现的端口继承问题。与Windows不同,Linux的system()通过fork()+execve实现,默认会继承父进程所有文件描述符(包括监听端口),导致端口占用问题。文章详细对比了Windows和Linux的进程创建机制差异,并提出了三种解决方案:1)创建socket时设置SOCK_CLOEXEC标志;2)使用fcntl设置FD_CLOEXEC;3)推荐使用posix_spawn替代system(),通过精细控制文件描述符继承来彻底解
2026-04-10 22:43:09
725
1
原创 Linux 下用 VS Code 高效调试(二)
本文介绍了VSCode中CMake工程的配置方法,重点解析了settings.json文件中的核心配置项。主要内容包括:基础路径与生成器配置、构建过程控制、工具链设置、调试配置等关键参数;详细说明了变量替换系统,支持环境变量、命令替换等功能;提供了跨平台的通用配置示例,涵盖自动区分构建类型、并行编译、代码补全支持等实用功能。该配置适用于Windows/Linux系统,支持GCC/MinGW/MSVC/Ninja等多种工具链,开箱即用。
2026-04-09 22:33:27
392
原创 Oat++: 一个轻量级、高性能、零依赖的 C++ Web 框架
Oat++是一个高性能、零依赖的现代C++ Web框架,专为构建可扩展的Web服务和RESTful API设计。它具有同步和异步双API模式,支持高并发处理,内置JSON序列化、DTO对象映射和依赖注入等功能。框架适用于嵌入式设备、IoT、微服务等多种场景,通过Swagger集成可自动生成API文档。Oat++以纯C++实现,跨平台支持良好,相比其他C++框架具有更优的性能和更小的资源占用,特别适合对性能和移植性要求高的项目开发。
2026-04-09 22:08:08
729
原创 RTTR: 一款MIT 协议开源的 C++ 运行时反射库
RTTR是一款MIT协议开源的C++运行时反射库,通过编译期生成反射信息实现零运行时开销。它支持类、成员变量、方法、枚举等完整反射功能,采用无侵入设计,仅需少量宏即可为第三方库添加反射能力。RTTR兼容Windows/Linux/macOS平台,支持跨动态库调用,适用于插件系统、序列化、UI自动生成等场景。相比C++原生RTTI和Boost.Reflection,RTTR在性能、易用性和跨库兼容性方面具有明显优势。安装需源码编译,项目集成推荐CMake方式。典型使用包括动态创建对象、读写属性、调用方法等操作
2026-04-08 22:45:02
612
原创 达梦数据库在Linux备份报错 -8003: 缺少本地或者远程归档 解决方案
摘要:在Ubuntu上调试达梦数据库备份时出现错误,主要原因包括未开启归档模式、归档路径配置无效或权限不足。解决方法包括:1) 检查归档状态,确认是否开启;2) 创建归档目录并配置正确路径;3) 验证归档配置生效后重新执行备份。备选方案包括检查权限与目录、使用冷备份(无需开启归档)或检查dmarch.ini配置文件。操作需SYSDBA权限,建议在业务低峰期执行。
2026-04-08 22:30:24
291
原创 UDRefl: 一个基于C++20的高性能动态反射库
UDRefl是一个基于C++20的高性能动态反射库,采用无RTTI/异常的设计,提供运行时灵活访问C++类型结构的能力。核心特性包括极致性能(编译期优化)、完全动态支持、零头文件污染和全面类型支持。该库通过ReflMngr管理器注册类型信息,支持对象创建、成员访问和方法调用等核心操作,适用于插件系统、序列化、脚本绑定等场景。相比其他反射库,UDRefl具有更高性能、更全面的功能支持,但需要C++20编译器。其简洁API和高效实现使其成为需要动态类型操作的中大型项目的理想选择。
2026-04-07 21:54:32
542
1
原创 CMake进阶:库xxx-Config.cmake文件根据版本号匹配不同的版本库
本文介绍了在CMake配置文件中处理版本控制的两种方法:1) 在XXX-Config.cmake中直接使用CMake自动注入的版本变量(XXX_FIND_VERSION等),无需手动定义;2) 提供完整的FindMyLib.cmake模板,展示如何根据用户指定版本匹配不同版本的库文件路径。文章详细说明了版本变量的获取、校验、路径匹配和现代CMake目标导出的完整流程,并给出了包含v1.0/v2.0/v3.0三个版本的实际项目目录结构和配置示例。
2026-04-02 22:52:08
250
原创 银河麒麟V10系统安装vcpkg的方法
本文介绍了在不同架构的银河麒麟系统上安装vcpkg的详细步骤。主要内容包括:1)环境准备与依赖安装,包括查看系统架构、glibc版本和安装基础工具链;2)vcpkg的安装配置,涵盖克隆仓库、运行引导脚本、设置镜像源解决下载问题;3)针对x86_64、ARM64和龙芯架构的系统适配方案,提供完整的命令行操作流程。特别强调了通过清华镜像源解决国内下载慢的问题,并给出了不同架构下的三元组配置方法。最后通过安装fmt库验证vcpkg是否正常工作,为银河麒麟系统上的C++开发提供了便捷的包管理解决方案。
2026-04-02 22:17:15
501
原创 Cocos2d - x: 一款开源跨平台 2D 游戏框架
Cocos2d-x是一款开源跨平台2D游戏引擎,支持C++、Lua和JavaScript开发,适用于iOS、Android、Windows等多平台。其核心架构采用场景-层-精灵模式,包含高效的渲染引擎和物理系统。该引擎以轻量级、高性能著称,支持纹理压缩、对象池等优化技术,并提供热更新功能。知名游戏如《捕鱼达人》《开心消消乐》均基于此引擎开发。安装简便,通过命令行工具可快速创建项目,适合从休闲游戏到商业应用的各类2D开发需求。相比Unity等3D引擎,Cocos2d-x在2D游戏领域更具性能优势,且完全免费开
2026-04-01 22:48:55
738
原创 LeoCAD:一款免费开源的虚拟乐高 CAD 软件
LeoCAD是一款免费开源的乐高建模软件,支持Windows、Linux和macOS系统。它兼容LDraw标准,提供拖拽式界面,适合乐高爱好者和教育使用。软件需配合LDraw零件库使用,支持模型创建、编辑、动画制作及分步指南生成。虽然轻量高效,但在复杂模型处理上可能存在性能瓶颈。作为开源工具,LeoCAD是学习3D建模和跨平台开发的实用选择。
2026-03-29 12:06:27
525
原创 C语言的三大法宝:链表+结构体+函数指针
摘要:本文介绍了C语言中实现高级编程模式的5种核心技术:1. 通过结构体+函数指针模拟面向对象,将数据和方法封装成类;2. 使用侵入式链表实现通用数据结构管理,通过container_of宏反向获取宿主结构体;3. 基于通知链机制实现解耦设计,通过链表管理回调函数实现事件通知;4. 利用表驱动状态机替代复杂switch-case,通过结构体数组描述状态转换;5. 采用模块自注册技术,利用链接器特性实现零耦合的模块初始化。这些技术体现了C语言通过结构体、函数指针和链表等基础元素构建复杂系统的能力。
2026-03-26 22:24:42
411
原创 threepp:移植Three.js 的 C++ 3D图形开发库
threepp是Three.js的C++移植版本,为开发者提供在C++环境中开发3D图形应用的能力。它保留了Three.js的核心API设计理念和3D渲染逻辑,同时适配C++特性如RAII和智能指针。核心优势包括:兼容Three.js的概念(场景、相机、几何体等),降低学习成本;轻量级设计,依赖少;利用C++优化性能;支持OpenGL等硬件加速渲染。主要模块涵盖场景-相机-渲染器架构、几何体与网格、光照系统以及交互控制。安装支持CMake自动集成或手动编译,适合Windows/macOS/Linux平台。相
2026-03-22 22:33:35
477
原创 Linux 下用 VS Code 高效调试(一)
Windows下有VS系列,调试很方便,但是Linux下没有很好的集成开发环境,这也是Linux开发的硬伤;不过随着vscode的推出,Linux开发不在麻烦。大家都知道Linux基本上是用gdb调试,gdb功能强大,但对于大多数开发者来说,纯命令行界面看复杂的嵌套结构、追踪多线程调用栈、频繁跳转源代码,还是有不小的难度。VS Code 可以解决这些问题:把复杂的 GDB 指令转化为可视化的断点、变量监视窗口和调用堆栈树。
2026-03-19 22:25:53
609
原创 Win7系统SHGetKnownFolderPath获取“我的文档”目录失败的解决方案
文章摘要:在Windows系统中使用SHGetKnownFolderPath获取"我的文档"路径时,在Windows 7 SP1上出现失败情况。通过分析发现,可以采用替代方案:先用SHGetFolderPath的CSIDL_PROFILE参数获取用户主目录,再拼接固定文档目录路径。文章提供了C++实现代码示例,展示了如何正确获取用户目录并组合出文档路径。同时介绍了Windows 7中常用用户目录的环境变量和默认路径对应关系,为系统路径获取提供了多种解决方案。
2026-03-18 22:06:58
327
原创 libuv:一个跨平台的C++异步 I/O 库
libuv是一个跨平台异步I/O库,最初为Node.js开发,现已成为独立开源项目。它通过事件循环机制统一管理异步操作,支持网络/文件I/O、定时器、线程池等功能,屏蔽了不同系统底层I/O模型差异。安装方式包括包管理器安装和源码编译,支持Linux/macOS/Windows等平台。文章提供了定时器示例代码和CMake集成方法,并介绍了C++封装项目VLibuv。libuv广泛应用于高性能网络服务、开源项目依赖等场景,是开发跨平台异步程序的重要工具。
2026-03-17 22:04:03
762
原创 dlib: 一个跨平台的 C++ 机器学习 / 数值计算库
摘要:dlib是一个跨平台的C++机器学习库,提供Python绑定,支持人脸检测、特征点提取和识别等功能。本文介绍了dlib的安装方法(源码编译或CMake集成),并提供了完整的人脸识别C++代码示例,包含检测、特征提取和相似度比对流程。文章详细对比了C++与Python API差异,给出性能优化建议(如O3编译优化、GPU加速)。为提高识别准确率,提出了数据预处理、模型优化(CNN检测器)、阈值调优等方案,并介绍了人脸对齐、质量检测等实用技巧。C++版dlib在保持与Python相同功能的同时,具有更高性
2026-03-14 15:54:37
539
原创 ZLMediakit:一款基于 C++11 开发的高性能、跨平台的流媒体服务器框架
ZLMediakit是一款基于C++11开发的高性能跨平台流媒体服务器框架,支持RTSP/RTMP/HLS/HTTP-FLV/WebRTC等多种协议。其核心优势包括:1)采用协程+事件驱动架构,单核可处理万级并发;2)零拷贝传输降低CPU占用;3)支持协议互转、转码、录像等功能;4)提供简洁的HTTP API接口。该框架适用于安防监控、直播推流、音视频点播等场景,相比同类产品具有更低延迟(WebRTC<100ms)和更高性能。支持Linux/Windows/Mac平台,可通过Docker快速部署或源码
2026-03-12 22:37:07
605
1
原创 RTTR库:一款轻量级、跨平台的 C++ 运行时反射库
RTTR是一个轻量级、跨平台的C++运行时反射库,弥补了C++原生缺乏反射机制的不足。它支持动态获取/操作类型信息(类名、成员变量、方法等),无需编译器扩展即可实现类、枚举、继承关系的反射。核心功能包括动态创建对象、访问/修改属性(含私有成员)、调用方法(支持重载)、序列化等。通过注册宏RTTR_REGISTRATION声明反射信息后,可应用于序列化、编辑器开发、脚本绑定等场景。实际案例展示了JSON序列化、重载方法调用、枚举反射等典型用法,特别适合需要灵活操作对象但不愿修改源码的场景。虽然反射操作会带来轻
2026-03-10 22:40:25
467
原创 Qt中mysql和达梦数据库的驱动编译详细步骤
本文详细介绍了在Qt中编译MySQL和达梦数据库驱动的完整流程。内容包括:1) 环境准备(安装Qt源码、MySQL客户端库和达梦数据库);2) Windows和Linux平台下MySQL驱动的编译步骤(修改配置文件、执行qmake/make、安装驱动);3) 达梦数据库驱动的编译方法;4) Qt6中使用CMake方式编译数据库驱动的特殊步骤。文章提供了详细的配置文件修改示例和测试代码,并强调了环境匹配(32/64位一致)和依赖库路径设置的重要性。通过本文指导,开发者可以成功编译并测试Qt中的数据库驱动插件。
2026-03-06 22:31:28
535
原创 fast-cpp-csv-parser:一款最快的csv文件解析库
fast-cpp-csv-parser是一个高性能的C++ CSV解析库,采用纯头文件设计,无外部依赖。该库通过零拷贝设计和异步I/O实现高速解析,支持GB级大文件处理。核心特点包括:自动类型转换、自定义分隔符、引号转义处理、灵活的列映射和丰富的错误定位。使用只需包含csv.h头文件,通过CSVReader模板类即可快速解析数据。典型应用场景包括大数据分析、日志处理等需要高效CSV解析的场合,其多线程设计能显著提升大文件处理速度。需注意该库要求C++11及以上标准,且不支持CSV注释行等边缘特性。
2026-03-04 22:21:41
573
原创 CMake基础: 全局变量CMAKE_POSITION_INDEPENDENT_CODE
本文介绍了CMake中控制位置无关代码(PIC)的全局变量CMAKE_POSITION_INDEPENDENT_CODE。主要内容包括:1)该变量的作用是为构建共享库生成位置无关代码;2)配置方式有全局设置、单目标设置和条件编译三种;3)注意事项指出共享库默认开启PIC,静态库若链接到共享库也需PIC,以及平台差异;4)与BUILD_SHARED_LIBS的关系,后者设为ON时会自动启用PIC。文章为CMake项目中PIC配置提供了实用指导。
2026-03-04 20:54:42
94
原创 Linux常见命令集合(持续更新中...)
本文系统介绍了Linux系统管理的核心知识,包括目录结构解析、环境变量操作、库依赖排查、网络连接监控和权限管理等实用内容。重点讲解了5种解决"库找不到"问题的方法、ss/lsof/netstat网络诊断工具对比、chmod权限设置的符号/数字模式,以及多种进程启动方式。同时详细解析了Linux目录结构标准,对比了/bin、/sbin、/usr/bin等关键目录的区别,并提供了环境变量配置、程序依赖检查等日常运维技巧。文章包含大量实用命令示例和场景化解决方案,是Linux系统管理的实用参考
2026-02-27 23:08:24
318
2
原创 Qt之共享内存类QSharedMemory的使用(二)
摘要:文章分析了Qt的QSharedMemory类在不同操作系统下的使用差异。Windows系统会在进程退出时自动释放共享内存,而Linux系统在进程异常终止时可能残留内存段。针对Linux下强制关闭导致的内存残留问题,建议改用文件锁+PID文件的方案:通过fcntl对PID文件加排他锁,进程崩溃时内核会自动释放锁,避免死锁问题。该方法比共享内存更稳定可靠,能有效处理进程异常退出的情况。文中还提供了实现代码示例,展示了如何利用文件锁机制确保单实例运行。
2026-02-26 22:04:07
948
原创 Qt deleteLater作用及源码分析
Qt中的deleteLater()方法提供了一种安全的对象销毁机制。该方法通过向对象所属线程的事件队列投递一个延迟删除事件,确保对象在当前事件处理完成后才被销毁。相比直接delete,deleteLater()能有效避免在对象处理事件、执行槽函数或跨线程操作时直接删除导致的崩溃问题。核心优势包括:保证当前执行流程安全完成、线程安全操作、自动处理父子对象销毁顺序。但需要注意该方法依赖事件循环,若无事件循环则对象不会被销毁。典型应用场景包括:槽函数中销毁自身、跨线程销毁工作对象、临时对象自动销毁等。Qt官方推荐
2026-02-25 22:35:47
692
原创 tiny-process-library:一个用 C++ 编写的轻量级、跨平台(支持 Windows、Linux、macOS)的进程管理库
本文介绍了跨平台C++库tiny-process-library,它提供了统一的API来简化Windows、Linux和macOS上的外部进程调用。该库支持同步/异步执行命令、捕获输出、设置工作目录和终止进程等核心功能,采用单头文件设计,集成简单。文章详细展示了基础同步执行、异步捕获输出、终止子进程等典型用法,并针对跨平台开发中的命令格式、路径分隔符等差异提供了解决方案。通过这个轻量级库,开发者可以避免直接使用复杂的系统API,快速实现可靠的外部进程调用功能。
2026-02-24 22:10:04
927
原创 CMake进阶:SelectLibraryConfigurations模块
摘要:SelectLibraryConfigurations是CMake内置模块,用于自动处理Debug/Release库配置。它根据构建类型自动选择正确的库版本,并生成标准变量(如<basename>_LIBRARY)。模块会区分多配置(如VS)和单配置(如Makefile)生成器,分别采用"optimized/debug"关键字列表或单一路径的赋值逻辑。使用步骤包括:1)加载模块;2)设置<basename>_LIBRARY_RELEASE/DEBUG变量;3
2026-02-12 21:30:47
770
1
原创 C++中各平台表示Debug的宏
跨平台Debug宏检测方法总结:推荐使用#ifndef NDEBUG作为通用检测方式,兼容所有编译器。MSVC下可用_DEBUG,而GCC/Clang常用DEBUG。标准C的NDEBUG在Release模式下定义,Debug模式下不定义。示例代码展示了如何区分Debug/Release模式输出,其中assert宏也依赖NDEBUG定义。最佳实践是使用#ifndef NDEBUG来编写Debug专用代码。
2026-02-12 21:04:57
232
浮点数与十六进制转换工具
2024-01-22
C++设计模式例程,工厂模式例子
2024-01-15
高质量 C++编程指南,编程的好书籍
2023-12-26
C++模板函数重载规则详解
2023-12-26
sscom 串口调试工具
2023-12-20
NetAssist 网络调试工具
2023-12-20
基于C++CORBA高级编程
2023-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅