在mingw64里面编译libdatachannel的步骤记录
项目里面需要用到libdatachannel,我的开发环境是msys2,官方库里面没有预编译好的libdatachannel库可以直接用,以下是手动编译过程的记录。
一、编译环境准备
打开msys2 mingw64 shell,执行下面的命令更新仓库及安装编译器及依赖库
pacman -Syu #更新仓库信息
pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja git make
pacman -S mingw-w64-x86_64-gnutls
pacman -S mingw-w64-x86_64-nettle mingw-w64-x86_64-openssl
二、源码准备
还是在msys2 mingw64 shell里面执行下面的命令克隆源码仓库及依赖项
cd d:\\cpp
git clone https://github.com/paullouisageneau/libdatachannel.git
cd libdatachannel
git submodule update --init --recursive
三、开始编译
还是在msys2 mingw64 shell里面执行命令
cd d:\\cpp\\libdatachannel
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/mingw64 \
-DUSE_GNUTLS=1 \
-DUSE_NICE=0 \
-DUSE_SYSTEM_SRTP=OFF \
-DUSE_SYSTEM_USRSCTP=OFF \
-DBUILD_SHARED_LIBS=ON
ninja
ninja install
编译成功后
搞定收工。
四、可能遇到的问题
问题一:源码克隆失败,我这里无论用哪种方式,从github克隆源码都会失败,最后用国外的服务器去克隆的源码压缩以后拿到本地使用才成功的。
问题二:提示缺少srtp库,请检查克隆步骤是否执行了git submodule update --init --recursive以及编译的时候是否配置了-DUSE_SYSTEM_SRTP=OFF。