- 博客(39)
- 收藏
- 关注
原创 Nginx 1.25.4交叉编译问题:编译器路径与aclocal.m4错误解决方案
在Nginx 1.25.4的交叉编译过程中,常见问题包括编译器路径失效和aclocal.m4生成失败。为解决这些问题,首先需强制子模块(如PCRE)使用交叉编译器,通过修改Nginx源码中的PCRE_CONF_OPT配置,直接传递交叉编译器路径。其次,确保编译主机已安装autoconf、automake和libtool工具链,并在脚本中添加错误中断机制(set -e)以增强错误处理。完整的交叉编译脚本应包含工具链路径的统一管理、第三方库的路径配置以及编译选项的设置。通过以上步骤,可以有效解决Nginx交叉编
2025-05-22 17:21:56
325
原创 解决自签名证书HTTPS告警:强制使用SHA-256算法生成证书
在使用OpenSSL生成自签名证书时,现代浏览器可能因默认使用SHA-1哈希算法而提示不安全连接。为解决此问题,需强制使用SHA-256算法生成证书。具体步骤包括:配置环境变量、生成自签名根证书、生成用户证书请求和私钥、用根证书签名用户证书,并生成PKCS12格式证书。关键操作是在生成证书请求和签名时添加 -sha256 选项。此外,需确保根证书导入浏览器的受信任根证书颁发机构列表,并注意根证书更新时需重新生成所有用户证书。通过全流程使用SHA-256算法,可有效解决浏览器告警问题,适用于本地开发和测试环境
2025-05-22 16:31:43
830
原创 基于C++的验证码生成库及示例代码分享
整个验证码库仅由一个头文件CImg.h构成,该头文件涵盖了定义与实现部分,不过文件长度较大,已放置在附件中,有需要的朋友可以自行下载使用。
2024-12-26 15:41:23
526
原创 CentOS 下使用 xrandr 分屏输出问题: xrandr有概率设置分辨率失败
在最近的项目中,同事遇到了一个与 xrandr 相关的问题,经过一番摸索最终得以解决,我认为这个解决方案可能对其他使用 xrandr 的用户有所帮助,因此在此分享。
2024-12-26 10:55:12
728
原创 Socket编程中关于服务器端监听端口与新连接端口的深入剖析
在Socket编程领域,存在一个容易让初学者感到困惑的问题。尽管很多人在网络上进行了相关探讨,但不少解释要么不够清晰明了,要么太过肤浅,未能深入到问题的核心,这使得初学者在理解上存在诸多障碍。其中一个关键问题是:当Socket的服务端监听一个固定端口(例如8888),客户端前来连接此端口后,服务器会生成一个新的Socket与对应的客户端进行通讯。那么,这个新的Socket的发送和接收端口究竟是怎样的呢?是随机分配的,还是依然为8888?在此,明确地告诉读者,答案是8888。
2024-12-26 09:34:43
686
原创 按行分割文本函数(C++)
文本分割函数:这个函数的主要目的是将一个给定的字符串按照换行符(\n或\r\n)进行分割,并将分割后的每行字符串存储在一个std::vector中
2024-12-25 16:37:17
285
原创 Xshell 和 Xftp 更新提示问题的解决方法及分析
在个人使用 Xshell 和 Xftp 的过程中,通过官网注册使用一段时间后,往往会遇到这样的问题:软件提示“要继续使用此程序,你必须应用最新的更新或使用新版本”。对于那些觉得更新比较麻烦,或者被反复提示所困扰的用户来说,这可能会令人厌烦。
2024-12-25 16:11:08
3494
原创 mount命令选项:mfsymlinks 和 cmake_symlink_library: System Error: Operation not supported
由于工作项目中用到了libwebsockets-3.2.1,之前编译用低版本的SSL库,未遇到问题,在切换高版本的SSL库过程中,编译链接libwebsockets-3.2.1,发现静态库可以正常编译链接出来,但是动态的.so库却在链接的过程中出错。需要注意的地方就是最后面的mfsymlinks选项,很多人在使用mount的时候,可能会不加上,如果遇到需要符号链接的地方,可能会导致一些错误,我在编译一些开源库的时候,遇到过这种错误,导致有些错误。
2024-12-24 19:37:38
794
原创 CHttpClient 用于表示一个基于 C++ 和libcurl 的 HTTP 客户端
CHttpClient用于表示一个基于 C++ 的 HTTP 客户端,它内部使用了libcurl来实现 HTTP 请求的发送和接收。libcurl是一个强大的库,支持多种协议,包括 HTTP、HTTPS、FTP 等,并且提供了丰富的 API 来定制请求。该类封装了libcurl的基本功能,用于发送 GET 和 POST 请求。请注意,这个假设你已经有了libcurl的开发环境配置好,并且你的项目能够链接到libcurl。
2024-08-26 15:35:00
289
1
原创 CentOs去除桌面上边栏、隐藏桌面图标、修改桌面背景
重命名就行 mv [email protected] window- [email protected]。4:修改桌面背景:上传用户自定义文件(usrdef.png)设图片到/usr/share/backgrounds/目录,再修改/usr/share/backgrounds/default.xml。
2024-07-09 16:28:09
561
原创 查看framebuffer数据
之前遇到需要把图像叠加到海思的视频输出上,出现了个问题,就是海思3559A芯片在叠加半明图片,透明度为70%时候会出现部分图像花屏问题,可能使海思自己芯片的的问题。排查的过程有个比较好用的命令:通过cat /dev/fb0 > out1.raw 可以拿到fb0(framebuffer设备节点看具体的项目)里面的数据,就是图像的完成数据。可以拿出来,用YUV player这个工具去看。有需要查看framebuffer数据的人可以试试这个命令。
2024-07-09 16:23:25
220
原创 C++虚拟继承
CChildA虚拟继承CParent,编译器会在它的对象的首地址的位置,添加一个虚基类表指针vbptr指向派生类(CChildA)的virtual bass class table(虚基类表),虚基类表中存放的是派生类的虚基类表指针到虚基类实例指针的偏移量。CChildC的大小应该是:2个vbptr + 1个继承自CChildA的m_nChildA + 1个继承自CChildB的m_nChildB + 1份自己新增的m_nChildC + 1份CParent m_nParent拷贝。
2024-07-05 10:10:12
888
原创 libwebsockets主动关闭连接的流程
2、其次libwebsockets使用的时候是有个注册回调函数(websocketcb)的,这个是自己写,会用libwebsockets的人自己应都写过下面的回调函数的。1、首先需要调用 lws_callback_on_writable(struct lws *wsi), wsi是需要关闭的连接。libwebsockets库,之前发现不少人不太清楚libwebsockets是怎么主动关闭对端连接的。根据pstWsi可以判断你要关闭的连接,在此处返回 -1后就能够正常关闭连接,参考下面代码。
2024-07-04 17:14:20
516
原创 GB2312 和 UNICODE 映射表(2):第一篇放不下,两篇结合是一个完整的映射表
GB2312 和 UNICODE 映射表(2)第一篇放不下,两篇结合是一个完整的映射表
2024-07-04 16:34:48
3064
原创 轻便型的web服务架构方案:nginx + websocket
这个方案中:对于对于https中使用的话,还可以虑使用使用nigix的加密websocket代理WSS到websocket服务的的WS连接上。nigix的wss也成熟好用,减少开发工作和风险。对于有些项目来讲,特别是小型的c和c++项目,可以考虑使用 nginx + websocket这种方法,目前从使用情况来看,还是比较稳定的。基本能够满足并发比较小的项目,维护起来比较方便。界面使用web也很方便。websocket:推荐一个库 libwebsockets这个网上使用的人也比较多,目前看还算稳定。
2024-06-27 10:57:14
228
原创 protobuf-3.2.0交叉编译过程的错误:[unittest_proto_middleman] Error 126
一般我们在使用交叉编译的时候,大部分编译环境上的机器大概率是和目标机器是不一致的。这时候可会会出现:[unittest_proto_middleman] Error 126 这种错误,不用去管它,这主要是编译环境编译出来的测试工具是不能够运行在编译环境的机器上导致,不应去管它,只要交叉环境能编译出相关的库就行了。自己测试后发现不影响库的使用。
2024-06-24 15:17:30
353
原创 C和C++中 do{}while(0) 有个简化代码的用处
C和C++中 do{}while(0) 有个简化代码的用处:很多公司不让使用goto,写代码的过程中实际上有很多错误的处理实际上都是相同的逻辑,在不使用goto的时候,可以考虑将代码主要逻辑放到do{}while(0)中来处理,这样可以吧相C和C++中 do{}while(0) 有个简化代码的用处同的处理放到do{}while(0)之后,不需要再前面添加很多相同处理的逻辑,可以让代码更简洁,达到部分goto效果。//业务逻辑 , 需要时直接使用break跳出循环。//主要是错误处理和一些简单的处理。
2024-06-24 14:36:09
177
原创 QT版本5.14.2:QString的lengh长度问题以及其他长度问题
QT版本5.14.2。QString的lengh返回是字符格式,就是1个汉字或者英文都是1个字符。"a亲自测试"这种字符串返回5,亲自测试,绝对可靠,其他mid,right,left等和lengh是一样 的。
2023-11-24 14:40:56
648
1
原创 QT绘图过程中的跳屏问题:就是出现中间过渡图片现象
后面发现可能是由于控件过多导致QT底层绘图还是出现了跳屏,后面怀疑就setUpdatesEnabled启用后,各个窗口的更新还是异步的,就是各个窗口并没有提前刷新,而是setUpdatesEnabled启用后才重新绘制,没有提前绘制等待启用。所以在setUpdatesEnabled(ture)之前添加了200ms的延时测试,跳屏问题解决,当然这个200ms时间是个经验值,实际项目中可以自己斟酌。可能是嵌入式CPU的性能上不足,在绘制字体和文本的时候,有概率会出现字体先变化,然后文本后变化过程。
2023-09-07 10:27:48
339
1
原创 C++ 临时对象的生存周期:没有引用的前提下,存续周期为当前行行代码。下一行代码执行前临时对象被销毁
此问题源于项目中的使用到Jsoncpp的函数asString()返回的临时临时对象, strcpy有概率出现copy的数据为空。后面发现是 JsonString.asString()被销毁造成的。写了一个测试代码,来测试这种情况的临时对象的生存周期。
2023-07-13 13:46:21
168
1
原创 VS开发过程中用到QT时,简单生成makefile的过程
我们在使用VS开发的时候,有时候会用到QT来做界面,假设你已经有了交叉编译过的QT库。不想使用过于复杂的一些功能。那么可以用这种方法来生成一个makefile,简单方便。
2023-07-10 17:27:47
676
1
原创 QImage保存的图像格式没有透明度a数据问题
OSD采用QT的时候,需要生成一些图片,由于OSD绘图用了ARGB32格式的数据,然而QImage和QPixmap函数中都没有提供带透明度a数据的保存格式,保存的都是24位的数据。实际上如果原始的绘图数据是带透明度a的,那么实际上QImage中是有透明度a数据的。那么再可以自己写函数来保存数据,然后转换成自己需要的格式即可。我们可以通过QImage的bits()函数来获取原始图像数据:bits中数据的排列形式是bgra的排列,下面函数一个简单的讲QImage的ARGB32转换成带透明度BMP32格式。
2023-06-02 16:09:38
354
原创 libwebsockets库3.2.1版本lws_service在某些linux修改系统时间后出现阻塞问题
libwebsockets库3.2.1版本lws_service在某些linux修改系统时间后出现阻塞问题
2023-06-01 18:38:47
817
原创 QT使用 Linux framebuffer时候 支持QT本身不支持的其他格式(例如支持argb4444)的一种取巧方法,
工作中遇到一个问题,就是使用QT作为界面库,但是由于底层编解码在叠加OSD的时候,如果使用argb32(QImage::Format_ARGB32)的时候,4K的图像图片太大,编解码叠加导致性能不足等问题,所以需要图片压缩成argb4444的格式来规避性能问题。不想搞插件,只说说我的做方法,愿意用插件的自己搞。
2023-06-01 16:48:01
1635
1
WebSocketMan-v1.0.9-win32.zip
2024-08-26
QT使用 Linux framebuffer时候 支持QT本身不支持的其他格式(例如支持argb4444)的一种取巧方法
2023-06-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人