CMake3.29.0构建、VS2019编译
备注:基于OBS28.1.0源码
平台:Windows
Windows SDK:10.0.20348.0及以上
一、前期准备工作
在进行构建和编译之前,需要准备【环境】、【OBS源码】和【OBS依赖包】。
!!!注意:OBS源码版本越高,对构建和编译所需要的环境要求也越高。
1. 环境准备
-
VS2019 :下载Visual Studio 2019 版本,我下载的是社区版,傻瓜式安装即可;
-
直到这里,一定要勾选Windows SDK(10.0.20348.0及以上);
-
如果没有满足条件的版本,就下载Windows SDK,往下滑,选择Windows 10 SDK version 2104 (10.0.20348.0),点击Install SDK;
-
Qt 5.15.2(x64) :VS2019需安装Qt 5.15及以上版本,在Qt5.15以后Qt官网不提供离线安装包,需要在线安装,推荐清华大学开源软件镜像站
,比Qt官网下载更快。
(1)选择qt-unified-windows-x64-online.exe
(2) 安装Qt5.15.2
运行,傻瓜式安装一直“下一步”,直到下面这个界面(可能出现没有Qt5.15.2的情况)。那么,在选择版本导向页,勾选右侧Archive,再点击Filter,就会出现Qt5.15.2版本。继续“下一步”就安装OK啦。
-
CMake3.29.0-rc4 :目前最新版本,下载CMake,选择Windows平台X64的安装器。下载完成后,很简单傻瓜式安装;
2.OBS源码
- 下载OBS28.1.0源码;
- 注意:plugins目录下有许多引用的库,所以需要到对应目录下进行下载。
(1)下载enc-amf @ d5a136c;
(2)下载obs-browser @ d71cb04;
(3) 下载obs-websocket @ 5716577;
(4)下载libdshowcapture @ a93f1a3;
(5)到external目录下,下载capture-device-support @ bedcf28。
- 源码和依赖包解压完之后,按照OBS源码结构放在对应的目录下,准备构建。
build 创建文件夹作为CMake构建VS项目的文件夹;obs-studio-28.1.0 为源码目录。
3.OBS依赖包
- 下载OBS依赖包;
- 往下滑,找到OBS Deps Build 2022-07-18,点击Assets,选择windows-deps-2022-07-18-x64.zip双击下载;
- 解压后和OBS源码放在同级目录。
二、使用CMake构建OBS
1.点击Add Entry,添加DepsPath;
DepsPath = C:/Users/25838/Desktop/OBS/obs-studio-28.1.0/obs-studio-28.1.0/windows-deps-2022-07-18-x64;
2.点击Configure,选择VS2019 x64;
3.配置完成后,点击Generate,即可生成VS2019解决方案。
!!!注意:构建过程中如果出现CMake Error,自己注意一下提示的错误信息是什么,简单的就自己一下解决。其次,复制问题到官网搜,上面有很多帖子,一般都可以解决问题。
冷静!沉下心来!一定可以成功!
三、使用VS2019编译OBS Debug/Release版本
1.打开VS2019,点击打开解决方案,寻找build目录下ALL_BUILD.vcxproj;
2.编译Debug/Release两个版本的OBS库;
右键点击“解决方案”,选择“生产解决方案”,切换Debug/Release,即可编译两个版本的OBS库,在build/rundir目录下可以看到;
3.若出现VS2019编译报错;
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2220 以下警告被视为错误 obs-nvenc-test C:\Users\25838\Desktop\OBS\obs-studio-28.1.0\obs-studio-28.1.0\plugins\obs-ffmpeg\external\nvEncodeAPI.h 1371
解决方案:找到对应的工程,右键选择“属性”,将 “警告视为错误” 设为"否";
4.后续二次开发需要引用的头文件都在源码obs-studio-28.1.0/libobs目录下。
四、分享一下吧
//源码和编译好的库
链接:https://pan.baidu.com/s/1dAdra8HZVNvM6Zf0eqS-6g
提取码:5g29
//编译好的库
链接:https://pan.baidu.com/s/1tpBTI14bJFXcfKliwch7Bg
提取码:62dk
//源码(包含依赖包)
链接:https://pan.baidu.com/s/1Q3tXHwxVw_oUerE2IWNe_w
提取码:nl6r