EasyNTS在Go1.15版本下linux下无法编译的问题优化

作为TSINGSEE青犀视频开发的视频上云网关,EasyNTS的主要作用就是解决异地视频共享/组网的需求,网页对域名进行添加映射时,添加成功后会生成一个外网访问地址,在浏览器中输入外网访问地址,即可查看内网应用;无需开放端口,EasyNTS上云网关平台会向EasyNTS硬件发送端口组网的指令,短时间内组网成功,并再形成云端能力对外发布。

NTS.png

目前开发人员升级EasyNTS的Goalng版本为1.15版本,发现在Linux下出现编译错误。

image.png

查看对应的代码如下,最后一句报错,应该是Go1.15对部分的Cgo检查更严格,因此出现以上编译问题。

chandle := (*C.Easy_Handle)(C.malloc(C.sizeof_Easy_Handle))
defer C.free(unsafe.Pointer(chandle))
C.memset(unsafe.Pointer(chandle), 0, C.sizeof_Easy_Handle)
r1 := C.EasyStreamClient_Init(chandle, C.int(0))

修改代码如下:

chandle := (*C.Easy_Handle)(C.malloc(C.sizeof_Easy_Handle))
defer C.free(unsafe.Pointer(chandle))
C.memset(unsafe.Pointer(chandle), 0, C.sizeof_Easy_Handle)
r1 := C.EasyStreamClient_Init((*unsafe.Pointer)(chandle), C.int(0))

最后一句修改完毕后,报错消失,可以正常编译。

image.png

我们已经在很多项目当中通过EasyNTS解决了穿透及组网问题,比如智慧工地、智慧社区等,如果大家感兴趣,欢迎关注我们了解更多。

NTS.png

猜你喜欢

转载自blog.csdn.net/EasyNTS/article/details/120001635