zoukankan      html  css  js  c++  java
  • EasyDSS 编译 Arm 版本出现 “undefined: syscall.Dup2”解决方式

    由于很多用户的系统和程序都不同,因此TSINGSEE青犀视频研发团队往往需要根据用户的实际需求来对产品进行定制或者修改。有的客户需要 Arm 版本的 EasyDSS平台使用,因此我们也会在aarch64环境下编译EasyDSS。在编译过程中,出现报错 “undefined: syscall.Dup2”。

    在 Arm 架构中,没有提供 Dup2 的方法,因此出现以上编译问题。

    Dup3与Dup2参数略有差异,dup(int filedes)函数返回一个可用的与filedes共享文件表项的最小描述符。而dup2(int filedes,int filedes2)是使用一个描述符filedes2去指向filedes2文件表项(也是共享),但是在调用dup2之前要确保filedes2为可用描述符。

    在该问题中,我们查询在 Arm 架构的 linux 中实现了 Dup3 方法代替 Dup2,因此修改代码为 Dup3,即可解决该问题。参考代码如下:

    
    func RedirectStderr() (err error) {
       logFile, err := os.OpenFile(ErrorLogFilename(), os.O_WRONLY|os.O_CREATE|os.O_SYNC|os.O_APPEND, 0644)
       if err != nil {
          return
       }
       err = syscall.Dup3(int(logFile.Fd()), int(os.Stderr.Fd()), 0)
       if err != nil {
          return
       }
       return
    }
    
    

    EasyDSS具有电视直播、现场直播、时移电视、即刻回看和视频点播功能,适合OTT TV、IPTV、互联网教育、视频聊天、现场直播和VOD等应用。并且EasyDSS支持多种特性,完全能够满足企业视频信息化建设方面的需求,欢迎大家了解测试。

  • 相关阅读:
    第九章 表单效验
    第八章 使用jQuery操作DOM
    第七章 jQuery中的事件与动画
    CDQZ Day2
    HDU 3783
    CDQZ Day1
    BZOJ 2935/ Poi 1999 原始生物
    Luogu P1801 黑匣子_NOI导刊2010提高(06)
    Intelligent Poetry
    Great Expectations
  • 原文地址:https://www.cnblogs.com/easydss/p/15330551.html
Copyright © 2011-2022 走看看