환경 소개:
SRS는 cmake를 기반으로 컴파일된 JetBrains의 CLion을 지원하고, 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
이전 버전의 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
2. srs 소스 코드의 압축을 풀고 CLion 메뉴 파일-열기를 사용하여 srs 소스 코드 디렉토리를 엽니다.Windows에서 다운로드한 코드는 Linux에서 LF 줄 바꿈을 사용하여 컴파일해야 합니다.
3. 파일–>설정–>도구–>SSH 구성에서 SSH 링크를 생성합니다.
4. File–>Settings–>Build, Execution, Deployment–>Toolchains, 도구 체인을 구성하고 + 기호가 있는 원격 호스트를 추가하고 위에서 생성한 SSH를 선택하면 cmake, C 및 C++ 컴파일러가 자동으로 인식합니다. 버전이 업그레이드되면 자동 식별이 불가능하며 CentOS 7 호스트에서 원격으로 디렉토리를 탐색하고 위쪽 화살표를 클릭하여 맨 위로 조정할 수도 있습니다.
5. 이전 단계가 OK인 후 File->Settings->Build, Execution, Deployment->Deployment로 이동하여 원격 배포를 구성합니다. 여기에서 원격 호스트(SFTP 유형, 그렇지 않은 경우 수동으로 추가)가 자동으로 생성됩니다.
Mappings 탭을 클릭하고 오른쪽의 Browse folder 버튼을 선택하여 srs 소스코드의 로컬 저장 경로와 CentOS 7의 원격 저장 경로를 선택합니다. 소스코드가 열려 있으면 로컬 경로가 자동으로 인식됩니다.
6. Deployment 옵션을 설정한 후 프로젝트의 메인 디렉터리를 마우스 오른쪽 버튼으로 클릭하고 Deployment, Upload to를 선택하여 CentOS 7의 원격 배포 디렉터리에 소스 코드를 업로드합니다. 업로드 후 CentOS에서 소스 코드를 볼 수 있습니다. 7.
7. 도구–>ssh 세션을 시작하고 원격 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
8. 프로젝트의 기본 디렉터리를 마우스 오른쪽 버튼으로 클릭하고 배포, 다운로드를 선택하고 원격 배포를 선택한 다음 위의 6단계와 유사하게 컴파일된 파일을 로컬에 다운로드합니다.
9. 파일->설정->빌드, 실행, 배포->CMake에서 컴파일 옵션, 빌드 디렉토리 등을 구성할 수 있습니다.
10. 다운로드가 완료되면 trunk/ide/srs_clion 디렉터리를 선택하고 마우스 오른쪽 버튼을 클릭하여 CMakeLists.txt를 선택하고 CMake 프로젝트를 로드한 다음 cmake를 실행합니다.
sudo chmod 777 -R *#因为远端生成了新的文件,执行cmake前再修改一次权限
오류 해결 방법: /objs/st/libst.a를 찾을 수 없습니다. libst 라이브러리가 올바르게 컴파일되지 않았습니다. CMakeLists.txt에서 이 줄을 주석 처리하면 됩니다(더 높은 버전의 SRS는 정상적으로 컴파일할 수 있음).
#${SRS_DIR}/objs/srt/lib/libsrt.a
#${SRS_DIR}/src/srt
#AUX_SOURCE_DIRECTORY(${SRS_DIR}/src/srt SOURCE_FILES)
cmake를 성공적으로 실행한 후 Run->Edit Configuratios는 자동으로 srs의 CMake 응용 프로그램을 생성하고 시작 매개 변수, 작업 디렉터리 및 환경 변수를 구성하고 구성 후 컴파일합니다.
11. 위 그림의 왼쪽 상단에 있는 녹색 망치를 클릭하여 컴파일합니다.컴파일이 성공한 후 녹색 버그를 클릭하여 디버깅할 수 있습니다. 디버그를 단계별로 실행하고 F9를 눌러 다음 중단점으로 이동합니다.
컴파일 오류가 선언되지 않은 식별자 nullptr을 보고합니다. cmake는 C++11 기능을 올바르게 사용할 수 없습니다. makefile에 추가할 수 있습니다.
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11")
#include <srt/srt.h>를 찾을 수 없다는 오류가 보고되었습니다. 이 행을 주석 처리할 수 있습니다.