mediasoup 3.13.16 worker 的编译及生成 xcodeproj 和 sln
source link: http://blog.tubumu.com/2024/01/23/mediasoup-build-02/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
一、准备工作
1、安装 node
brew install node
可以不预先安装
meson(ninjia)
和flatc
, 编译时会自动使用pip
安装。故需确保安装了python3
。
2、获取源码并安装 node 包
# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica
git clone https://github.com/versatica/mediasoup
cd mediasoup
# 如果不关心 node 部分,可以不运行下行。
npm i
二、默认编译
默认编译将产出 mediasoup-worker
可执行程序。
# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica/mediasoup
export MEDIASOUP_BUILDTYPE=Release # 可选,默认 Release
export MEDIASOUP_OUT_DIR=$(pwd)/out # 可选,默认 out 子目录
npm run build worker:build # node npm-scripts.js worker:build
当然,也可以直接执行 make
:
# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica/mediasoup
# 默认是:mediasoup-worker
make -C worker
# 或者 Debug 版
# MEDIASOUP_BUILDTYPE=Debug make -C worker
如果报”ERROR: Subproject exists but has no meson.build file”之类的错误,执行命令
make -C worker clean-all
后重试。
三、生成 xcodeproj
# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica/mediasoup
make -C worker xcode
# 或者:
# cd worker && meson setup --buildtype debug --backend xcode ./out/xcode
四、生成 sln
首先确保 meson
安装:
pip install meson
# 当前目录:C:\Workspace\OpenSource\mediasoup
npm run flatc:worker
cd worker
meson setup --buildtype debug --backend vs out\vs
Makefile
没有相关配置,所有不能执行make -C worker vs
如有必要:执行npm run flatc:worker
之前将task.py
中的PTY_SUPPORTED
的值硬编码为False
。
如有需要:set https_proxy=http://127.0.0.1:10809
五、编译 libmediasoup-worker 静态库
# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica/mediasoup
export MEDIASOUP_BUILDTYPE=Release # 可选,默认 Release
export MEDIASOUP_OUT_DIR=$(pwd)/out # 可选,默认 out 子目录
make -C worker libmediasoup-worker
六、编译 libmediasoup-worker 动态库
首先打开 meson.build
文件,搜索 libmediasoup_worker = library
,将 library
改为 shared_library
。
# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica/mediasoup
export MEDIASOUP_BUILDTYPE=Release # 可选,默认 Release
export MEDIASOUP_OUT_DIR=$(pwd)/out # 可选,默认 out 子目录
make -C worker libmediasoup-worker
生成 P/Invoke
代码(尚未测试):
dotnet tool install --global ClangSharpPInvokeGenerator --version 14.0.0-beta2
DYLD_LIBRARY_PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib ClangSharpPInvokeGenerator -n Tubumu.Mediasoup -m MediasoupNative -o MediasoupNative.cs -l ./worker/out/Release/libmediasoup-worker.dylib -f ./worker/include/lib.hpp
后来在较新版本上的 mediasoup
上尝试生成 xcodeproj
失败,并且提示警告 WARNING: xcode backend is currently unmaintained, patches welcome
。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK