前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OBS源代码阅读笔记

OBS源代码阅读笔记

作者头像
xiny120
发布2019-06-11 11:10:39
1.6K0
发布2019-06-11 11:10:39
举报
文章被收录于专栏:毛毛v5毛毛v5

obs配置文件加载:bool OBSBasic::InitBasicConfig(); OBS认证信息加载,貌似还没有实现吗?

代码语言:javascript
复制
void Auth::Load(){
    OBSBasic *main = OBSBasic::Get();
    const char *typeStr = config_get_string(main->Config(), "Auth", "Type");
    if (!typeStr) typeStr = "";

    main->auth = Create(typeStr);
    if (main->auth) {
        if (main->auth->LoadInternal()) {
            main->auth->LoadUI();
        }
    }
}

在obs的QT UI中添加一个新的QDialog,之后,编译提示如下信息:

代码语言:javascript
复制
错误 1 error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Widget::metaObject(void)const " (?metaObject@Widget@@UBEPBUQMetaObject@@XZ) 
错误 2 error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall Widget::qt_metacast(char const *)" (?qt_metacast@Widget@@UAEPAXPBD@Z) 
错误 3 error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall Widget::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@Widget@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
错误 4 fatal error LNK1120: 3 个无法解析的外部命令  

这是因为通过vs2017添加的对话框,只在vs的工程里面,并没有加入到cmake的工程里面,吧对应的cpp和h文件加入到 .\obs-studio\UICMakeLists.txt 的里面就行了。比如我的是DlgLogin.h 和DlgLogin.cpp

代码语言:javascript
复制
set(obs_SOURCES
    ${obs_PLATFORM_SOURCES}
    ${obs_libffutil_SOURCES}
    ../deps/json11/json11.cpp
    obs-app.cpp
    api-interface.cpp
    DlgLogin.cpp // 这个是我添加的UI对应的class
    window-basic-main.cpp
    window-basic-stats.cpp
        ....)

set(obs_HEADERS
    ${obs_PLATFORM_HEADERS}
    ${obs_libffutil_HEADERS}
    ../deps/json11/json11.hpp
    obs-app.hpp
    platform.hpp
    DlgLogin.h // 这个是我添加的UI对应的class
    window-main.hpp
    window-basic-main.hpp
    window-basic-stats.hpp
        ....)

set(obs_UI
        ......
    forms/OBSRemux.ui
    forms/DlgLogin.ui // 这个是我添加的UI
    forms/OBSAbout.ui)

加入这三行到makelist,重新编译工程,就可以了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档