C/C++常用开源库
文章平均质量分 86
主要介绍常用开源库的使用。
1.环境搭建;
2.常用接口介绍;
3.使用示例;
灬Sunnnnn
承接各种定制开发,Qt、音视频、流媒体、客户端、服务端,需要的私聊。
展开
-
XLS文件解析库-libxls介绍
XLS文件格式是Microsoft Excel早期版本使用的电子表格文件格式。它是由微软为其桌面应用程序Microsoft Excel设计的一种专有文件格式。XLS:最初在1993年与Excel 4.0一起推出,后来在Excel 5.0至Excel 2003的各个版本中得到了进一步的发展。由于项目需要,需要解析XLS格式的文件,新的开源库有的是不支持解析XLS文件的,主要是支持xlsl的文件。原创 2024-09-04 20:54:23 · 324 阅读 · 0 评论 -
Qt 使用Quazip解压缩、压缩文件
Quazip,是在zlib基础上进行了简单封装的开源库,适用于多种平台,利用它可以很方便将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。修改quazip.pri文件如下图所示:添加$$PWD/zconf.h $$PWD/zlib.h。拷贝Qt目录下的QtZlib/zlib.h和zconf.h文件到quazip源码目录。使用everything搜索rc.exe和rcdll.dll这两个文件,然后拷贝。解压后,使用QtCreator打开quazip.pro文件。原创 2023-11-01 14:06:55 · 903 阅读 · 0 评论 -
Qt 使用QtXlsx操作Excel表
QtXlsx是一个用于读写Microsoft Excel文件(.xlsx)的Qt库。它提供了一组简单易用的API,可以方便地处理电子表格数据。新建一个QTCreator窗体项目,将上图src文件夹拷贝到该项目路径中。QtXlsx源码嵌入QTCreator中使用。将如下代码拷贝到.pro文件中。qmake,编译代码。原创 2023-11-01 10:33:37 · 3609 阅读 · 0 评论 -
Qt 二维码生成与识别
QZXing是一个基于Qt框架的二维码解码库,它是对ZXing(Zebra Crossing)开源项目的一个Qt封装。ZXing是一个功能强大的开源二维码解码库,支持多种类型的码,包括QR码、DataMatrix码、Aztec码等。QZXing提供了一个Qt插件,可以方便地在Qt应用程序中使用二维码解码功能。它可以在不同版本的Qt上运行,并提供了几种使用方式,包括直接解码图像、解码文件、解码摄像头捕获的图像等。使用QZXing可以轻松地将二维码解码功能集成到Qt应用程序中,实现扫描和解析二维码的功能。原创 2023-11-08 17:08:55 · 1215 阅读 · 0 评论 -
Qt 国产嵌入式操作系统实现文字转语音功能(TTS)
本示例使用的CPU:rk3588。操作系统:kylin V10架构:aarch64在Windows端,我们很容易想到使用Qt自带的类QTextToSpeech来实现文字转语音功能,Qt版本得在5.11.0以上才支持。但是在嵌入式平台,尤其是在国产的操作系统中,我们需要编译Qt源码,使得Qt能够支持文字转语音功能,我使用的Qt版本5.12.8,我的想法是在编译配置中将文字转语音功能编译进去,但是我并没有找到相关的配置选项,如果有知道的大佬,请指教。Qt 文字转语音_qt 文本转语音-CSDN博客。原创 2024-01-15 17:32:42 · 1800 阅读 · 0 评论 -
Qt 国产嵌入式操作系统实现文字转语音功能(ekho库)
Qt 国产嵌入式操作系统实现文字转语音功能(TTS)_tts驱动 转文字-CSDN博客在继上篇文章之后,甲方粑粑不满意使用eSpeak发出的声音太难听了,这就不得不找个替代品,声音稍微好听了一些。使用ekho开源库。Ekho(余音)是一个免费、开源的中文语音合成软件。它目前支持粤语、普通话(国语)、诏安客语、藏语、雅言(中国古代通用语)和韩语(试验中),英文则通过Festival间接实现。Ekho支持Linux、Windows和Android平台。原创 2024-01-22 17:19:41 · 1740 阅读 · 0 评论 -
消息库-ZeroMQ介绍
ZeroMQ (也称为 ØMQ, zmq 或 libzmq) 是一个高性能的异步消息传递库,用于构建分布式或并发应用程序。它提供了一个消息队列的抽象,允许不同的计算机和进程之间进行消息传递,而无需关心底层网络细节。ZeroMQ 不是一个传统意义上的消息队列服务器,而是一个嵌入到应用程序中的库,它提供了多种消息传递模式,如请求-应答、发布-订阅、推-拉等。原创 2024-05-20 21:29:13 · 2075 阅读 · 0 评论 -
日志库-zlog介绍
zlog是一个可靠、高性能、线程安全、灵活、模型清晰、纯C的日志库。zlog 特点高性能:zlog 设计为尽量减少日志记录对程序性能的影响。多线程安全:在多线程环境下,zlog 可以安全地记录日志而不会产生冲突。动态配置:可以在不重启程序的情况下,通过配置文件或API动态修改日志行为。支持多种日志级别:如DEBUG、INFO、WARN、ERROR等。可定制格式:可以自定义日志的输出格式。支持异步日志:可以将日志写入异步队列,由另一个线程负责写入文件,减少主线程阻塞。原创 2024-05-18 21:41:41 · 614 阅读 · 0 评论 -
日志库-Glog介绍
glog 是 Google 的一个 C++ 日志库,它提供了丰富的日志功能,包括条件日志、CHECK 宏等,同时支持日志的自动轮转。项目Valueyyyy年mm月dd日时间threadid线程IDfile文件名line行号msg消息glog 是一个功能丰富的日志库,它提供了一系列的宏和函数来处理日志记录。初始化和关闭: google::InitGoogleLogging(const char* argv[]): 初始化 glog日志系统。通常在 main 函数的开始处调用。原创 2024-05-17 22:51:09 · 1108 阅读 · 0 评论 -
日志库-Spdlog介绍
spdlog 是一个快速的、仅头文件的、C++11日志库,它提供了易于使用的接口和丰富的日志级别控制,同时支持异步日志记录。高性能:spdlog 设计用于高性能日志记录,支持异步日志记录,可以减少日志对应用程序性能的影响。简单易用:spdlog的API设计简洁,易于集成和使用。丰富的日志级别:支持多种日志级别,如TRACE、DEBUG、INFO、WARN、ERROR、CRITICAL等。多种日志输出:支持多种日志输出方式,包括控制台、文件、系统日志等。自定义格式:可以自定义日志输出格式。原创 2024-05-17 20:16:19 · 1877 阅读 · 0 评论 -
异步I/O库-libuv介绍
libuv是一个跨平台的支持事件驱动的异步I/O的库,使开发者可以以非阻塞的方式执行文件I/O操作、网络通信、子进程管理等。事件循环:libuv有一个基于事件循环的模型,它不断地轮询事件,并在事件发生时调用相应的回调函数。异步I/O:libuv提供了异步文件I/O和网络I/O的接口,使得开发者可以执行I/O操作而不阻塞主线程。线程池:libuv使用线程池来处理一些不能以非阻塞方式执行的I/O操作,如文件系统操作在某些操作系统上。DNS解析:libuv提供了异步DNS解析的接口。原创 2024-05-15 20:00:57 · 2421 阅读 · 0 评论 -
网络库-POCO介绍
POCO C++ Libraries 提供一套 C++ 的类库用以开发基于网络的可移植的应用程序,它提供了许多模块,包括网络编程、文件系统访问、线程和并发、数据库访问、XML处理、配置管理、日志记录等功能。Poco库的设计目标是易于使用、高度可定制和可扩展。Foundation:提供基本功能,如线程、时间、内存管理、流、字符串等。XML:提供XML解析和生成功能。Util:提供配置文件处理、命令行参数解析等实用功能。原创 2024-05-14 20:23:57 · 1482 阅读 · 0 评论 -
网络库-libcurl介绍
libcurl 是一个功能强大的库,支持多种协议,用于数据传输。它广泛应用于实现网络操作,如HTTP、HTTPS、FTP、FTPS、SCP、SFTP等。libcurl 提供了丰富的 API,可以在多种编程语言中使用。libcurl 主要特点支持多种协议:包括 HTTP, HTTPS, FTP, FTPS, SCP, SFTP,等。多平台支持:可在多种操作系统上使用,如 Windows、Linux、Mac OS X 等。线程安全:在多线程程序中使用时,保证数据的安全性。原创 2024-05-13 22:08:31 · 1164 阅读 · 0 评论 -
网络库-libevent介绍
libevent是一个事件驱动的网络库,主要用于构建可扩展的网络服务器。它提供了跨平台的API,支持多种事件通知机制,如select、poll、epoll、kqueue等。主要组件event: 表示一个具体的事件,包括事件类型、事件回调等。event_base: 用于管理所有的事件,负责事件的添加、删除和分发。buffer: 提供缓冲区操作,用于网络数据的读写。evbuffer: 提供增强的缓冲区操作,支持链式缓冲区。原创 2024-05-13 20:52:23 · 1252 阅读 · 0 评论 -
压缩归档库-Snappy介绍
Snappy 是一个 C++ 编写的压缩和解压缩库,由 Google 开发。它专为速度而设计,而不是最大压缩率或与其他压缩库的兼容性。Snappy 通常用于需要快速压缩和解压缩的场景。快速:压缩速度达到250 MB/秒及以上。稳定:Snappy在谷歌的生产环境中压缩和解压缩了数PB的数据。Snappy比特流格式是稳定的,不会在不同版本之间发生变化。鲁棒性:Snappy解压缩器的设计不会在面对损坏或恶意输入时崩溃。免费开源软件:Snappy是在BSD类型的许可证下获得许可的。原创 2024-05-09 22:02:42 · 1111 阅读 · 1 评论 -
Zip压缩归档库-libzip介绍
libzip是一个C库,用于读取、创建和修改zip格式的压缩文件。它支持从zip文件中读取、写入、添加和删除文件,还支持密码保护的zip文件。libzip是跨平台的,可以在多种操作系统上使用,包括Linux、Windows和macOS。zip_open:用于打开一个 zip 文件。如果文件不存在,可以设置相应的标志来创建一个新的 zip 文件。zip_close:关闭一个 zip 文件,并写入所有的更改。原创 2024-05-09 21:17:25 · 1835 阅读 · 0 评论 -
压缩和归档库-LZ4介绍
LZ4是一种快速的压缩算法,提供压缩和解压缩的速度,而牺牲了压缩率。它被设计用于快速的数据压缩和解压缩,特别是用于数据存储和传输。LZ4通常用于需要高速数据处理的场景,如数据库、日志文件处理和实时数据传输。LZ4的特点是压缩和解压缩速度快,但压缩率不如其他一些压缩算法(如gzip或zstd)。LZ4的工作原理是基于字典的压缩,它查找数据中的重复字符串,并用较短的形式来表示这些重复的部分。这种算法非常适合于有大量重复数据的情况。原创 2024-05-09 19:56:56 · 1960 阅读 · 0 评论 -
压缩和归档库-miniz介绍
miniz是一个单一文件的小型压缩库,它是zlib的一个替代品,专门为需要轻量级压缩解决方案的项目设计,它被设计成可以轻松地集成到项目中,并且具有最小的依赖性。支持zlib兼容的压缩和解压缩。单个源文件实现,易于集成。小的内存占用,适合资源受限的环境。支持流式压缩和解压缩。包含用于压缩和解压缩文件的简单API。miniz通常被用作游戏、嵌入式系统、移动应用和其他需要减小依赖和体积的项目的压缩解决方案。原创 2024-05-08 23:09:38 · 1685 阅读 · 1 评论 -
压缩和归档库-Zlib介绍
zlib是一个广泛使用的压缩库,它提供了一系列的函数用于压缩和解压缩数据。zlib使用DEFLATE压缩算法,这是一种无损压缩算法,通常与gzip和zip文件格式一起使用。zlib库本身支持的压缩文件格式是它自己的专有格式,通常用于数据流的无损压缩。这种格式不是一种标准的文件格式,而是一种内存中的压缩数据表示,常用于网络传输、数据库和应用程序内部的数据压缩。压缩网络传输数据以减少带宽使用。压缩存储数据以减少所需的存储空间。压缩数据dest:指向用于存储压缩数据的缓冲区的指针。原创 2024-05-08 21:02:02 · 2588 阅读 · 0 评论 -
TinyXML-2介绍
TinyXML-2 是一个简单、小巧的 C++ XML 解析库,它是 TinyXML 的一个改进版本,专注于易用性和性能。TinyXML-2 用于读取、修改和创建 XML 文档。它不依赖于外部库,并且可以很容易地集成到项目中。DOM 风格 API:TinyXML-2 提供了 Document Object Model(DOM)风格的API,允许开发者以树形结构的方式操作 XML 数据。轻量级:TinyXML-2 的代码量小,不需要外部依赖,适合嵌入式系统和移动设备。原创 2024-05-07 22:09:52 · 599 阅读 · 0 评论 -
Jsoncpp介绍
Jsoncpp 是一个 C++ 库,用于解析和生成 JSON 数据。它提供了一个易于使用的 DOM(Document Object Model)风格的 API,允许开发者以树形结构的方式操作 JSON 数据。Jsoncpp 是一个C++库,允许操作JSON值,包括对字符串的序列化和反序列化。它还可以在非序列化/序列化步骤中保留现有注释,使其成为存储用户输入文件的方便格式。DOM 风格 API:Jsoncpp 提供了类似 JavaScript 的对象和数组操作方式,使得操作 JSON 数据变得直观。原创 2024-05-07 20:56:04 · 1290 阅读 · 0 评论 -
RapidJSON介绍
RapidJSON 是一个 C++ 的 JSON 解析库,由腾讯开源。支持 SAX 和 DOM 风格的 API,并且可以解析、生成和查询 JSON 数据。RapidJSON 快。它的性能可与strlen() 相比。可支持 SSE2/SSE4.2 加速。RapidJSON 独立。它不依赖于 BOOST 等外部库。它甚至不依赖于STL。RapidJSON 对内存友好。在大部分 32/64 位机器上,每个 JSON 值只占 16字节(除字符串外)。原创 2024-05-07 20:09:38 · 2059 阅读 · 0 评论 -
JSON++介绍
JSON++ 是一个轻量级的 JSON 解析库,它是 JSON(JavaScript Object Notation)的一个超集。整个代码由一个单独的头文件json.hpp组成,没有库,没有子项目,没有依赖项,没有复杂的构建系统,支持STL语法。轻量级:JSON++ 的代码量非常小,容易集成到项目中。易于使用:JSON++ 提供了简洁的 API,可以快速地解析和生成 JSON 数据。高效:JSON++ 的解析和生成速度非常快。原创 2024-05-07 19:27:32 · 426 阅读 · 0 评论