libmediasoupclient使用libwebrtc,所以如果想编译libmediasoupclient,需先编译libwebrtc.
编译libwebrtc
获取webrtc源代码需要使用Chromium depot tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
如果下载不下来,需要搭个梯子或者修改系统hosts文件
下载完后把depot_tools的路径添加到PATH
export PATH=$PATH:/root/depot_tools
下载webrtc源码
$ mkdir webrtc-checkout
$ cd webrtc-checkout
$ fetch --nohooks webrtc
$ gclient sync
编译webrtc
$ cd src
$ gn gen out/Default --args='use_custom_libcxx=false'
$ ninja -C out/Default
编译webrtc时默认使用的是自带的libstdc++,‘use_custom_libcxx=false’,指示编译webrtc时使用系统的 libstdc++;
因为编译libmediasoupclient使用的是系统的libstdc++,如果webrtc自带的libstdc++和系统的libstdc++版本不一致,后期链接libmediasoupclient和libwebrtc时会报错。
如果编译成功,在out/Default/obj目录中可以看到libwebrtc.a文件
编译libmediasoupclient
$ cmake . -Bbuild \
-DLIBWEBRTC_INCLUDE_PATH:PATH=root/webrtc-checkout/src \
-DLIBWEBRTC_BINARY_PATH:PATH=/root/webrtc-checkout/src/out/Default/obj
$ make -C build/
在build目录下将生成以下静态库
libmediasoupclient.a