欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在aarch版编译libEasyRTSPClient库无法通过问题解决

程序员文章站 2022-07-14 20:23:44
...

RTSPClient因其兼容性强,各种各样RTSP的兼容,各种各样的场景,大部分IPC的内置服务器都是基于live555的RTSPServer来二次开发实现的。但仍然有一部分摄像机是固定一条道,如果在这个过程中穿插着发了个OPTION或者GET_PARAMETER,摄像机直接就无响应了,所以我们在开发EasyRTSPClient的时候,开发了各种各样的选项,例如是否发保活、url是否带用户名密码等等。

在aarch版编译libEasyRTSPClient库无法通过问题解决

最近我们的开发人员发现了一个问题:在aarch64环境下编译libEasyRTSPClient库时,编译无法通过,并且出现如下错误:

在aarch版编译libEasyRTSPClient库无法通过问题解决

这个问题偶尔会出现,我们可以看到h265_stream.h:25 中定义了宏min

在aarch版编译libEasyRTSPClient库无法通过问题解决

同时在
gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/include/c++/7.4.1/vector:60:0中引用了头文件

在aarch版编译libEasyRTSPClient库无法通过问题解决

gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/include/c++/7.4.1/bits/stl_algobase.h:

在stl_algobase.h:中又定义了min,所以出现重复定义min的问题,导致编译无法通过。

解决这个问题其实很简单,我们只需要在h265_stream.h中把min的定义放到#include 之后如下:

在aarch版编译libEasyRTSPClient库无法通过问题解决

就能顺利通过编译了。