23
社区成员




目前在Windows 10测试通过,最好在Win10以上系统编译开发。
下载如下依赖库
上一步,安装完依赖程序之后,打开命令行(或者按快捷键CTRL+r运行),输入命令SystemPropertiesAdvanced
回车,
设置系统环境变量(用户级和系统级均可),如下
# 在原有PATH之上,增加如下(具体路径根据自己的安装路径修改)
PATH=C:\strawberry-perl\perl\bin;C:\Program Files\CMake\bin;C:\MinGW\bin;
动态和静态都支持
由于需要静态版Qt,网上已经有现成编译好的无需自己再浪费时间构建,
位置:https://build-qt.fsu0413.me/,
找到版本5.15.x最新静态64位、静态64位、静态64位版本,
比如我的:Qt5.15.6-Windows-x86_64-VS2019-16.11.18-staticFull-20220915.7z
放置位置:E:\Qt,比如我的:E:\Qt\Qt5.15.6-Windows-x86_64-VS2019-16.11.18-staticFull
该步骤就需要配置环境变量指向Qt安装目录,以便于CMake能识别到Qt,请配置环境变量Qt5Static_HOME,方法如下:
# 桌面打开命令行(或者按快捷键CTRL+r运行),输入命令`SystemPropertiesAdvanced`回车
QTDIR=E:\Qt\Qt5.15.6-Windows-x86_64-VS2019-16.11.18-staticFull
按照Qt安装包正常安装选择:
由于本项目依赖众多第三方库,
为了提升项目构建效率,采用了 Conan 包管理工具,操作过程如下:
Conan提供了Python库支持,安装Python3之后只需执行安装命令即可
2.x 版本因为ffmpeg暂时不支持,请下载v1.x版本
# 卸载最新版(如果已安装)
pip uninstall conan
# 安装 1.x 版本
pip install conan==1.59.0
安装命令如下
这个过程需要需要花费很长时间,由于网络原因可能中断,需要多次执行安装命令等到输出成功消息。
# 静态选项:compiler.runtime=MT 取消强依赖:--build=missing
conan install . -s compiler.runtime=MT --build=missing
提供了两种方法选其一即可,参考如下:
极不建议该种方法,外面的同学可以试试!)。
下载对应包,地址如下:
#位置:/okedu/webrtc, 请下载x64版本
https://pan.baidu.com/s/1Q6HGMkbGKzNxaspnSib8BA 提取码: wqp2
放置目录,结构如下:
# 如果不存在的目录,请创建。
3rdparty/webrtc/
├── libwebrtc-windows-x64
│ ├── include
│ ├── release
# 设置proxy
set HTTP_PROXY=http://{ip}:{port}
set HTTPS_PROXY=http://{ip}:{port}
git config --global http.proxy socks5://{ip}:{port}
git config --global https.proxy socks5://{ip}:{port}
# 取消proxy
set HTTP_PROXY
set HTTPS_PROXY
git config --global --unset http.proxy
git config --global --unset https.proxy
#下载depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
# 设置环境变量:
set PATh=${depot_tools_dir};%PATH%
# 参考:
https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html
# 准备目录
rd /s /q webrtc & mkdir webrtc
# 配置源码repo地址
gclient config --name src https://webrtc.googlesource.com/src
# 这个过程需要多次进行,且易断开
gclient sync
打开Powershell,执行如下命令:
# gn 配置
/webrtc/src$ gn gen ../out/Release --args='is_debug = false rtc_include_tests = false use_lld = false enable_iterator_debugging = true use_custom_libcxx = false use_custom_libcxx_for_host = false'
# ninja 编译
/webrtc/src$ ../../depot_tools/ninja -C ../out/Release webrtc
# 创建头文件输出目录(/out/include)
New-Item ../out/include -ItemType Directory -Force
# 复制头文件,${WEBRTC_DIR}为webrtc代码目录
robocopy "$WEBRTC_DIR\src" "..\out\include" *.h *.hpp /S /NP /NS /NC /NFL /NDL
# 如果不存在的目录,请创建。
3rdparty/webrtc/
├── libwebrtc-windows-x64
│ ├── include
│ ├── release
由于项目是基于XMPP协议,Gloox是该协议的实现库,本项目需要对其做了拓展
代码位于OkEDU-Gloox
。 用 visual studio 打开 gloox/gloox.sln 解决方案,右击项目属性,打开配置窗口配置项:
msbuild gloox.vcxproj -property:Configuration=Release
即可。# 执行拷贝头文件命令
E:\QtWorkspace\ok-edu-gloox>robocopy "src" "x64\include" *.h *.hpp /S /NP /NS /NC /NFL /NDL
# 查看输出目录
E:\QtWorkspace\ok-edu-gloox>dir x64
Directory of E:\QtWorkspace\ok-edu-gloox\x64
2023/05/04 21:42 <DIR> .
2023/05/04 21:42 <DIR> ..
2023/04/27 21:21 <DIR> include
2023/04/22 16:57 <DIR> Release
拷贝gloox生成的依赖放到主项目,位置如下:
E:\QtWorkspace\ok-edu-classroom-desktop\3rdparty\gloox #没有请创建
└── libgloox-windows-x64 #没有请创建
├── include/gloox/*.h #复制所有头文件(x64/include/*.h)到此处
└── release/gloox.lib #复制gloox.lib库文件(x64/Release/gloox.lib去掉版本)到此处
OkEDU-Classroom-Desktop$ tree -L 4 3rdparty/
3rdparty/
├── gloox
│ └── libgloox-linux-x86_64
│ ├── debug
│ │ ├── libgloox.a
│ └── include
│ └── gloox //gloox 头文件目录
└── webrtc
└── libwebrtc-linux-x86_64
├── debug
│ └── libwebrtc.a
└── include //webrtc 头文件目录
├── api
├── audio
--ignore--
├── tools
└── video