视频上云服务平台EasyCVR使用Go语言可执行程序出现“Process XXX has exited with status XXXX”错误

GO语言在TSINGSEE青犀视频研发中起到了至关重要的作用,比如在开发 EasyCVR 的部分功能过程中,需要使用调用 C/C++ 的代码,一般采用 Cgo 的方式。当运行生成的可执行程序时,出现以下错误:
could not launch process: Process XXX has exited with status XXXX

视频上云服务平台EasyCVR使用Go语言可执行程序出现“Process XXX has exited with status XXXX”错误

原因分析

我们可以按照以下步骤对该错误进行排查:

1、首先查看代码逻辑,确认代码逻辑并无错误之后进行下一步。

2、查看对应的编译是否正确,编译顺利通过的话,则检查加载库,一切正常,进入下一步。

3、查看代码,发现加载的库文件是动态库,dll 库。

注:静态库和动态库的区别是:静态库在程序的链接阶段被复制到了程序中;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存*程序调用。

即程序运行的时候,首先从系统的环境变量和程序当前目录查找需要的 dll 库,如果失败,在 Go 程序中就会出现这种错误。

解决方案

将对应的动态库复制到可执行文件所在的目录,或者复制到系统环境变量中。可正常运行。

视频上云服务平台EasyCVR使用Go语言可执行程序出现“Process XXX has exited with status XXXX”错误

EasyCVR视频平台

EasyCVR安防视频云服务的主要功能是将本地局域网内连通的RTSP视频源,包括但不限于数字网络摄像机、DVR、NVR、编码器等设备视频流,通过RTMP协议推送到阿里、腾讯等公有云厂商的视频服务中,具备优秀的视频转码、播放、级联能力。同时该新系统也支持海康SDK、Ehome协议,GB28181国标协议,是一套真正的视频融合平台。

视频上云服务平台EasyCVR使用Go语言可执行程序出现“Process XXX has exited with status XXXX”错误

EasyCVR已经支持集成海康EHome协议,感兴趣的用户可以阅读一下《EasyCVR集成海康EHome协议系列——配置及协议介绍》、《EasyCVR集成海康EHome协议系列——Ehome协议调用流程介绍》等文。