C++
C++专栏,深度挖掘C++编程语言,分享实用技巧与现代C++开发的最佳实践。
好奇的菜鸟
想,都是问题;做,才是答案。
技术交流wx:yjtzfywh。
展开
-
插件:CLion中使用C/C++ Single File Execution插件编译和运行单个文件
在开发C/C++程序时,尽管项目通常以组织良好的结构进行管理,但有时我们可能只需要快速测试或运行单个C或C++源文件。对于这种情况,JetBrains CLion IDE提供了一个便捷的解决方案——通过安装名为“C/C++ Single File Execution”的插件来实现对单个源文件的直接编译与执行。本文将详细介绍如何在CLion中安装并使用该插件来高效地处理独立的C/C++文件。原创 2023-12-30 22:29:22 · 1128 阅读 · 0 评论 -
Windows下配置GCC(MinGW)环境
Windows下配置GCC(MinGW)环境原创 2023-12-30 21:25:57 · 1860 阅读 · 0 评论 -
GCC:GNU编译器
GCC(GNU Compiler Collection)是一款广泛使用的开源编译器套件,支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada和Go等。在本文中,我们将通过一个简单的C程序来介绍GCC的编译过程,包括预处理、编译、汇编和链接四个阶段。假设我们有一个名为main.c。原创 2023-12-22 19:00:00 · 184 阅读 · 0 评论 -
Meson:现代的构建系统
LLDB,全称为Low-Level Debugger,是苹果公司开发的一款开源、高性能的源代码级调试器。作为Clang和LLVM项目的一部分,LLDB被设计为C、C++、Objective-C和Swift等编程语言的原生调试器。它提供了丰富的功能和灵活的接口,使得开发者能够有效地定位和修复代码中的错误。原创 2023-12-21 14:04:28 · 286 阅读 · 0 评论 -
LLDB:强大的源代码级调试工具
LLDB,全称为Low-Level Debugger,是苹果公司开发的一款开源、高性能的源代码级调试器。作为Clang和LLVM项目的一部分,LLDB被设计为C、C++、Objective-C和Swift等编程语言的原生调试器。它提供了丰富的功能和灵活的接口,使得开发者能够有效地定位和修复代码中的错误。原创 2023-12-21 14:00:22 · 738 阅读 · 0 评论 -
GDB:强大的GNU调试器
GDB,全称为GNU Debugger,是一款广泛使用的源代码级调试工具。它支持多种编程语言,包括C、C++、Fortran、Objective-C、Python、Ada和Go等。GDB能够帮助开发者在开发过程中定位和修复程序中的错误,通过设置断点、查看变量值、单步执行代码、跟踪函数调用等操作,深入理解程序的运行机制。原创 2023-12-21 10:20:34 · 272 阅读 · 0 评论 -
ZLMediakit-method ANNOUNCE failed: 401 Unauthorized
修改配置文件config.ini。原创 2023-08-18 10:37:55 · 1075 阅读 · 0 评论 -
ZLMediakit-集群部署
一般流媒体集群实现方式采用溯源方式实现,服务器分为源站和边沿站。另外需要指出的是,由于zlmediakit同时支持rtsp和webrtc,而它们两者都是基于rtp的,在zlmediakit内部,无须转协议简单处理后就可互联互通,所以使用zlmediakit来做大规模的webrtc低延时直播已经成为可能;需要指出的是,由于zlmediakit很早就支持hls的按需拉流功能,所以zlmediakit的边沿站也支持hls协议(其实支持zlmediakit任意支持的协议),这点是srs不具备的。原创 2023-08-18 09:57:15 · 1216 阅读 · 0 评论 -
ZLMediaKit-延时
很多小伙伴们并不能明白什么叫延时,认为随便一个播放器播放出来的画面跟原始流画面时间差就是延时,其实这是对延时最大的误解。延时不是表象,很多人在测试延时时很不专业,对延时测试的专业性认识不足,在此我特别提醒,不是随随便便的播放器都有资格做延时测试的!采集延时在采集摄像头或显卡画面时,由于fps的限制和cpu性能、内存拷贝速度等客观限制,采集画面成YUV/RGB等数据时会有一定的延时,一般延时为毫秒级别。转载 2023-08-17 16:53:53 · 557 阅读 · 0 评论 -
ZLMediaKit-MediaServer支持的HTTP-HOOK-API
此事件对回复不敏感。目前mp4/hls录制不当做观看人数(mp4录制可以通过配置文件mp4_as_player控制,但是rtsp/rtmp/rtp转推算观看人数,也会触发该事件。一个直播流注册上线了,如果一直没人观看也会触发一次无人观看事件,触发时的协议schema是随机的,看哪种协议最晚注册(一般为hls)。rtsp专用的鉴权事件,先触发on_rtsp_realm事件然后才会触发on_rtsp_auth事件。该rtsp流是否开启rtsp专用方式的鉴权事件,开启后才会触发on_rtsp_auth事件。转载 2023-08-17 15:00:32 · 650 阅读 · 0 评论 -
ZLMediaKit-MediaServer支持的HTTP-API
调用该接口,zlm会启动tcp服务器等待连接请求,连接建立后,zlm会关闭tcp服务器,然后源源不断的往客户端推流。第一次推流失败会直接返回错误,成功一次后,后续失败也将无限重试(不停地建立tcp监听,超时后再关闭)。功能:作为GB28181客户端,启动ps-rtp推流,支持rtp/udp方式;功能:动态添加rtsp/rtmp/hls/http-ts/http-flv拉流代理(只支持H264/H265/aac/G711/opus负载)功能:获取所有TcpSession列表(获取所有tcp客户端相关信息)转载 2023-08-17 14:58:37 · 254 阅读 · 0 评论 -
ZLMediaKit-服务器的启动与关闭
s --ssl 有参 默认:/Users/xzl/git/ZLMediaKit/release/mac/Debug/ssl.p12 选填 ssl证书文件或文件夹,支持p12/pem类型。-c --config 有参 默认:/Users/xzl/git/ZLMediaKit/release/mac/Debug/config.ini 选填 配置文件路径。在编译zlmediakit后,会生成MediaServer主程序,该程序相对路径为。根据您的操作系统,可能为。转载 2023-08-16 15:49:06 · 1867 阅读 · 0 评论 -
ZLMediaKit-播放url规则
ZLMediaKit的点播一般通过mp4文件来实现,推荐大家使用http mp4点播,这样是最简单,服务器也无需解复用mp4文件,当然ZLMediaKit目前也支持rtsp、rtmp、http-flv、websocket-flv的mp4点播, 对应的url跟直播url类似,不在赘述,这里只介绍区别。中可以认为是rtsp协议的另外表现形式,他们推流、播放使用的数据源都相同,都是。支持 rtmp推流/播放、http-flv播放、ws-flv播放。支持 http-ts播放、ws-ts播放。转载 2023-08-16 15:27:26 · 971 阅读 · 2 评论 -
ZLMediaKit推流测试
RTMP标准不支持H265,但是国内有自行扩展的,如果你想让FFmpeg支持RTMP-H265,请按照此文章编译:https://github.com/ksvc/FFmpeg/wiki/hevcpush。#如果未安装FFmpeg,你也可以用obs推流。转载 2023-08-16 15:25:48 · 1093 阅读 · 0 评论 -
ZLMediaKit安装
如果你是位新手,强烈建议使用ubuntu16或更新版本编译ZLMediaKit,macOS是次选推荐平台,最不推荐的是centos6.*或windows平台。基本安装方式跟Debian系安装差不多,安装命令分别改成brew / yum即可。这是ZLMediaKit作为服务器的主进程,该进程可以在免去开发的情况下直接作为测试流媒体服务器使用,如果你需要更复杂的业务逻辑,可以通过。由于开启webrtc相关功能比较复杂,默认是不开启编译的,如果你对zlmediakit的webrtc功能比较感兴趣,可以参考。转载 2023-08-16 15:24:26 · 307 阅读 · 0 评论 -
基于C++雪花算法工具类Snowflake -来自chatGPT
的类,用于生成Snowflake算法的唯一ID。方法生成了10个唯一ID,并将其打印到控制台上。在上面的代码中,我们使用C++编写了一个名为。原创 2023-08-04 16:59:08 · 340 阅读 · 0 评论 -
jni编程(windows+JDK11+clion)
JNI是Java Native Interface的缩写,通过使用Java本地接口书写程序,可以确保代码在不同的平台上方便移植。原创 2023-07-12 08:41:25 · 1510 阅读 · 0 评论 -
Clion-2023.1.4配置CMake-3.25.3
Clion配置CMake原创 2023-06-26 08:59:12 · 572 阅读 · 0 评论 -
OpenCV下载、环境变量配置
选择合适的版本下载即可。原创 2023-06-26 07:54:11 · 921 阅读 · 0 评论 -
Qt6.5打包(QT windeployqt不是内部或外部命令、QT错误:缺少libgcc_s_seh-1.dll ,无法正常启动(0xc000007b) 问题解决方法)
将Qt安装文件夹下的mingw_64\bin加入到环境变量Path。将编译好的exe文件复制到桌面的一个文件夹。原创 2023-06-24 14:46:04 · 1449 阅读 · 1 评论 -
Qt读写文件
项目文件结构样例文件。原创 2023-06-24 10:57:40 · 479 阅读 · 0 评论 -
Qt绘图(线条、椭圆、矩形、图片滚动)
widget.h。原创 2023-06-24 09:06:28 · 2468 阅读 · 0 评论 -
Qt事件分发器、事件过滤器
用于事件的分发,可以进行事件拦截的操作。事件分发器返回布尔类型:bool event(QEvent ev),如果返回值为true,代表用户自己处理该事件,否者交给基类实现事件。使用步骤:重写event事件;原创 2023-06-24 07:15:28 · 698 阅读 · 0 评论 -
Qt定时器
实现三个定时器,第一个1s增加一个数,第二个2s增加一个数,第三个0.5s增加一个数,按钮控制第三个定时器,暂停和继续根据定时器状态自动切换;使用第二种,更灵活方便。原创 2023-06-24 06:18:52 · 639 阅读 · 0 评论 -
Qt鼠标事件
myLabel.h。原创 2023-06-23 21:34:43 · 777 阅读 · 0 评论 -
Qt自定义控件(数字框与拖拽条互动)
自定义红色区域组件,做到数字与拖拽条相互影响。原创 2023-06-23 15:56:01 · 686 阅读 · 0 评论 -
Qt控件(按钮、单选、复选、list、tree、table)
工具栏图标文字一起显示,背景透明。原创 2023-06-23 09:33:00 · 447 阅读 · 0 评论 -
Qt布局(登录窗口实现)
修改窗口大小和标题栅格布局修改页面布局密码框修改模式修改为固定大小。原创 2023-06-23 07:38:48 · 460 阅读 · 0 评论 -
Qt颜色、文件、字体对话框
项目目录界面。原创 2023-06-21 08:10:17 · 923 阅读 · 0 评论 -
Qt消息对话框
【代码】Qt消息对话框。原创 2023-06-20 08:10:46 · 1296 阅读 · 0 评论 -
Qt之对话框
当使用模态对话框使用时,无法对父窗口进行操作。当对非模态对话框使用时,可以对父窗口进行操作。原创 2023-06-19 08:39:44 · 1727 阅读 · 0 评论 -
Qt使用资源文件QtResource
勾选Generate form使用ui。原创 2023-06-19 08:07:28 · 1386 阅读 · 0 评论 -
No rule to make target ‘.xxxxxxxx‘, needed by ‘debug/xxxx.cpp‘. Stop.
添加的资源文件使用的中文名称,改为英文就没问题了。原创 2023-06-19 07:52:52 · 422 阅读 · 0 评论 -
Qt之QMainWindow
选择模板。原创 2023-06-18 16:25:27 · 483 阅读 · 0 评论 -
Qt信号和槽
/Teacher类 老师类//Student类 学生类//下课后,老师会触发一个信号,饿了,学生响应信号,请客吃饭依次创建teacher和student类teacher.hQ_OBJECTpublic:signals://自定义信号,写在signals下//返回值是void,只需申明,//可以有参数,可以重载student.hQ_OBJECTpublic://早期Qt版本,必须要写到public slots,高级本本可以写到public或者全局下。原创 2023-06-12 08:38:43 · 2199 阅读 · 0 评论 -
Qt之按钮操作
【代码】Qt之按钮操作。原创 2023-06-11 16:08:28 · 562 阅读 · 0 评论 -
Qt Creator快捷键
整行移动:ctrl + shift +↑或者↓。同名之间的.h 和 .cpp切换F4。字体缩放:ctrl +鼠标滚轮。自动对齐:ctrl + i;注释:ctrl + /运行:ctrl + r。编译:ctrl + b。查找:ctrl + f。原创 2023-06-11 16:05:10 · 484 阅读 · 0 评论 -
Qt之HelloWord(Qt Creator 10)
选择Base class未QWidget。使用默认构建qmake。原创 2023-06-11 15:49:50 · 556 阅读 · 0 评论 -
C++之STL常用算法(遍历、查找、排序、拷贝、替换、算数生成、集合)
【代码】C++之STL常用算法(遍历、查找、排序、拷贝、替换、算数生成、集合)原创 2023-06-11 09:31:41 · 744 阅读 · 0 评论 -
C++函数对象(仿函数)
重载函数调用操作符的类,其对象常称为函数对象;函数对象使用重载的()时,行为类似函数调用,也叫仿函数;函数对象(仿函数)是一个类,不是一个函数;原创 2023-06-09 10:22:43 · 555 阅读 · 0 评论