在VS环境下构建OBS

前言

我想,看到我这篇文章的人,都是和我一样想偷懒的人

环境准备

0、Windows 10

这个没什么好说的,建议跟随官方更新,虽然有点烦。

LTSB(LTSC)的用户就不用看下去了,先重装系统成普通的吧。

1、Git

https://git-scm.com/

下载后无脑下一步安装就可以了,不需要特别注意

2、Visual Studio 2017 Community

https://visualstudio.microsoft.com/

谢天谢地,VS有个很好的下载安装器兼模块管理器Visual Studio Installer,配置还是挺简单的,在网页上下载到的实际就是这个安装器,在里面下载的速度还不错,不用挂代理也有个很好的速度,在这个安装器里面你可以很方便的就完成更新VS,安装各种模块,包括模块与模块之间的依赖他给你处理好了。

安装VS的时候,工作负载选上”使用C++的桌面开发”,还有“用于CMake的Visual C++ 工具”,至于其他可以自己看着勾选,下面是我的勾选:

VS安装选择

emmm,有人可能要问我为什么不用下载CMake,因为上面我们勾选的“用于CMake的Visual C++ 工具”里面就已经包含了后面VS会调用的CMake

依赖项下载

well,OBS帮我们把大部分的依赖文件都帮我们打了个包,我们只需要下载他这个压缩包

https://obsproject.com/downloads/dependencies2017.zip

还有Qt

https://www.qt.io/cn

然而令我觉得有点恶心的是Qt官方下载必须要去注册登录才能下载,那怕你选的是开源的版本,于是我就在想,怎么常用的开发库,怎么会在国内没有镜像呢?

于是我就去清华大学开源软件镜像站找了一下,还真的有

https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/

根据OBS上给的开发指引,VS2017构建的话Qt需要版本号大于5.9.7,我个人选择了 5.9.7 的版本,下载速度,各位可以尝试使用其他新的版本去构建应该不会有什么问题。
在安装qt的时候,建议手动勾选一下安装内容,默认安装我不太信任,下面是我的勾选:

Qt安装选择

因为这里我用的编译器是msvc,所以我勾选的是msvs 64bit.

OBS本体代码拉取

因为github是在国外,建议拉取的时候自行挂一下代理,不然只有几kb/s的速度是慢的可怕

注意,因为OBS里面有submodule,所以拉取的时候建议一并拉取,也就是用这条命令:

1
git clone --recursive https://github.com/obsproject/obs-studio.git

开始!

嗯,就是现在才是开始。

我们用VS打开刚才拉取的OBS代码文件夹,在右侧解决方案资源管理器找到CMakeLists.txt右键找到更改CMake设置,点下去,会弹出这样的窗口

将配置添加到CMakeSettings

我这里选择的x64-Debug,后面如果要添加其他的配置,可以对CMakeSettings.json右键添加配置。

接下来他会自动生成一个CMakeSettings.json的文件,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"configurations": [
{
"name": "x64-Debug",
"generator": "Ninja",
"configurationType": "Debug",
"inheritEnvironments": [
"msvc_x64_x64"
],
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "-v",
"ctestCommandArgs": ""
}
]
}

我们要在里面这个配置中添加名为”variables”的值

1
2
3
4
5
6
7
8
[{
"name": "QTDIR",
"value": "你的QT安装目录/Qt5.9.7/5.9.7/msvc2017_64"
},
{
"name": "DepsPath",
"value": "依赖包的解压位置/win64"
}]

最后得到的CMakeSettings.json大概是这样的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
"configurations": [
{
"name": "x64-Debug",
"generator": "Ninja",
"configurationType": "Debug",
"inheritEnvironments": [
"msvc_x64_x64"
],
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "-v",
"ctestCommandArgs": "",
"variables": [
{
"name": "QTDIR",
"value": "D:/Qt/Qt5.9.7/5.9.7/msvc2017_64"
},
{
"name": "DepsPath",
"value": "D:/dependencies2017/win64"
}
]
}
]
}

然后,保存,再次右键CMakeLists.txt,应该会发现多了很多东西,点全部生成,然后等一下,如果右下方的输出或者是错误列表没有提示错误并且提示生成成功,我们就成功构建了一个OBS。

右键菜单

接下来我们要让这个OBS跑起来,在上方工具栏的启动项选择中,选择”OBS64.exe(安装)”,然后启动,我们就可以看到我们熟悉的OBS界面了,当然,你平时OBS的设置也会在里面显示出来。

OBS

厚颜无耻之言

个人还是有些问题想问下的,各位对于这个命令提示符默认的936造成的部分字符无法正常生成是怎么解决的?