• windows环境CLion调试SRS流媒体服务器源码


    环境介绍:
    SRS支持JetBrains的CLion,它是基于cmake编译的,在windows环境使用CLion,通过SSH远程调试SRS,调试环境安装在CentOS 7虚拟机上。
    资源下载:
    CLion官网下载地址:https://www.jetbrains.com/zh-cn/clion/,我下载的版本是CLion-2022.2.3.exe,windows版。
    SRS下载地址:https://github.com/ossrs/srs,我下载的是srs-4.0release.zip。

    环境搭建
    1、启动CentOS 7虚拟机,安装依赖环境,centos7系统不要选择中文安装。

    yum install perl-core cmake gcc gcc-c++ gdb -y
    
    • 1

    上面安装的是老版本cmake,想安装新版本可以把上面cmake去掉,安装cmake3.21.1:

    wget -c https://github.com/Kitware/CMake/releases/download/v3.21.1/cmake-3.21.1.tar.gz
    yum install openssl openssl-devel
    tar -zxvf cmake-3.21.1.tar.gz
    cd cmake-3.21.1
    ./bootstrap
    make 
    make install
    ln -s /usr/local/bin/cmake /bin/cmake
    cmake --version
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2、srs源码解压缩,CLion菜单File-Open,打开srs源码目录,windows下载的代码在linux下编译需要 LF换行方式。
    在这里插入图片描述

    3、File–>Settings–>Tools–>SSH Configurations,创建SSH链接。
    在这里插入图片描述
    4、File–>Settings–>Build,Execution,Deployment–>Toolchains,配置工具链,+号添加一个Remote Host,选择上面创建的SSH后cmake、C、C++编译器自动识别,如果版本做了升级不能自动识别,也可以远程浏览CentOS 7主机上的目录,点击向上箭头调整到最上面。
    在这里插入图片描述

    5、上一步OK后,File–>Settings–>Build,Execution,Deployment–>Deployment,配置远程部署,这里自动生成一个Remote Host(SFTP类型,没有则手动添加)。
    在这里插入图片描述
    点击Mappings选项卡,右边浏览文件夹按钮选择srs源码本地存放路径和CentOS 7远端存放路径,如果已经打开源码则本地路径自动识别。
    在这里插入图片描述
    6、Deployment选项设置完成后,右键项目主目录,选择Deployment,Upload to,把源码上传到CentOS 7远端部署目录,上传完成后就可以在CentOS 7上看到源码了。
    在这里插入图片描述
    在这里插入图片描述
    7、Tools–>Start ssh session,调出远程linux命令行,编译SRS源码。

    cd /home/chuwei/work/srs/trunk/
    sudo yum install libasan#cannot find /usr/lib64/libasan.so.0.0.0报错执行
    sudo chmod 777 -R *#部分脚本需要权限才能执行
    sudo ./configure
    sudo make
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    8、右键项目主目录,选择Deployment,Download from,选择Remote Deployment,下载编译好的文件到本地,和上面第6步类似。
    9、File–>Settings–>Build,Execution,Deployment–>CMake,可配置编译选项,构建目录等。
    在这里插入图片描述

    10、下载完成后,选择目录trunk/ide/srs_clion,右键选择CMakeLists.txt,load CMake Project,执行cmake。

    sudo chmod 777 -R *#因为远端生成了新的文件,执行cmake前再修改一次权限
    
    • 1

    报错解决:/objs/st/libst.a not found,libst库没有正确编译,把CMakeLists.txt里面这几行注释掉即可(高版本SRS可正常编译)

    #${SRS_DIR}/objs/srt/lib/libsrt.a
    #${SRS_DIR}/src/srt
    #AUX_SOURCE_DIRECTORY(${SRS_DIR}/src/srt SOURCE_FILES)
    
    • 1
    • 2
    • 3

    执行cmake成功后,Run–>Edit Configuratios 自动生成了srs的CMake Application,配置启动参数、工作目录、环境变量,配置好以后就可以编译了。
    在这里插入图片描述
    11、点击上图左上角绿色的锤子进行编译,编译成功后点击绿色的虫子调试,可以打个断点,clion调试快捷键:F7进入函数,F8单步调试,F9跳转到下一个断点。
    在这里插入图片描述
    编译报错未声明的标识符nullptr,cmake不能正确使用C++11特性,可在makefile文件加入:

    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11")
    
    • 1

    报错找不到#include ,可以把该行注释掉。

  • 相关阅读:
    js 将多张图片合并成一张图片
    ClickHouse(21)ClickHouse集成Kafka表引擎详细解析
    烧写最小linux失败,开机显示Wrong Ramdisk Image Format
    胡哥面试视频手录
    深入解析HTTP(web开发详细理解原理)【JavaWeb】
    第十一周:机器学习
    HbuilderX错误
    文件服务器系统迁移改造之路
    C++中的双冒号(::) 使用小结
    ctf之流量分析学习
  • 原文地址:https://blog.csdn.net/weixin_40355471/article/details/127833119