7

mediasoup 3.9.10 worker 的编译及生成 xcodeproj 和 sln

 2 years ago
source link: http://blog.tubumu.com/2022/04/22/mediasoup-build/
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.

mediasoup 3.9.10 worker 的编译及生成 xcodeproj 和 sln

发表于

2022-04-22 更新于 2022-04-28 分类于 Mediasoup

一、准备工作

1、安装 node

brew install node

可以不预先安装 mesonninjia, make 时会自动使用 pip 安装。故需确保安装了 python3

2、获取源码并安装 node 包

# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica
git clone https://github.com/versatica/mediasoup
cd mediasoup
npm i

二、默认编译

默认编译将产出 mediasoup-worker 可执行程序。

# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica/mediasoup
node npm-scripts.js worker:build

当然,也可以直接执行 make :

# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica/mediasoup
make -C worker

三、生成 xcodeproj

# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica/mediasoup
make -C worker xcode # cd worker && meson setup --buildtype debug --backend xcode ./out/xcode

四、生成 sln (尚未测试)

# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica/mediasoup
cd worker
meson setup --buildtype debug --backend vs ./out/vs

五、编译 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

npm-scripts.js
Makefile
meson.build


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK