# Mediasoup
## 1、安装CMake
- 下载地址:[https://cmake.org/download/](https://cmake.org/download/)
- 版本要求:cmake > = 3.5
## 2、下载Mediasoup源码
```
git clone https://github.com/versatica/libmediasoupclient.git
```
## 3、配置WebRTC
```
cmake . -Bbuild -DLIBWEBRTC_INCLUDE_PATH:PATH=D:\SUB\C\libwebrtc\src -DLIBWEBRTC_BINARY_PATH:PATH=D:\SUB\C\libwebrtc\src\out\Default\obj
```
## 4、编译源码
- 使用VS2019打开解决方案`libmediasoupclient\build\mediasoupclient.sln`
- 首先编译生成ZERO\_CHECK,再编译生成sdptransform
## 5、常见问题
> max函数问题
![](https://img.kancloud.cn/07/26/07265b8a7e826996a24ae32b9b2f3aff_909x460.png)
- **问题分析**:webrtc内部使用的min,max函数与windows头文件的定义冲突,会引发编译错误
- **解决方案**:在项目预处理器中增加宏NOMINMAX可以解决这个问题
![](https://img.kancloud.cn/0c/e7/0ce7105abc48448c15118546615a3e9e_974x593.png)
> auto类型不明确问题
- **问题分析**:数据类型不明确
- **解决方案**:编辑文件`libmediasoupclient\\src\\Handler.cpp`,找到报错的地方将const auto& iceServerUri改为const std::string& iceServerUri
> 警告被视为错误问题
![](https://img.kancloud.cn/5c/9d/5c9db0f2fde7aa5173c288a21a5c8588_1075x415.png)
- **问题分析**:出现不可忽略的警告
- **解决方案**:在项目属性中,选择 "配置属性" " > c/c + + > 高级" 属性页。编辑 "禁用特定警告" 属性以添加出现过的警告编号,比如:
```
4996
4101
4244
4834
4819
```
选择 "确定" 以应用所做的更改,然后就可以顺利的编译完成了,编译生成的静态库在libmediasoupclient\\build\\Release目录下
- **补充**:项目属性 > 配置属性 > c/c + + > 代码生成 > 运行库,这项需要改为MT模式,不然后续使用静态库时会报错