WebRTC Precompiled 使用

本文分享了在Windows环境下,使用预编译的WebRTC库进行视频设备数量输出的实践经验。文章详细记录了解决编译错误、链接器警告及静态断言失败等问题的过程,并提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近研究webrtc native code,但源码太大(10GB以上)又需要FQ,就找了个预编译的版本https://sourcey.com/precompiled-webrtc-libraries

下面把引入库的经验写下来

首先需添加宏定义 #define WEBRTC_WIN 不然会报以下错误

Must define either WEBRTC_WIN or WEBRTC_POSIX.

接着还需定义 #define NOMINMAX 因为windows.h中的min max函数与std标准库的冲突

 这时只剩下两个错误 

 C4996 '_vsnwprintf': This function or variable may be unsafe. Consider using _vsnwprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

加入#define _CRT_SECURE_NO_WARNINGS 

 

还有一个错误,不过编译已经通过了

E1574 静态断言失败,原因是 ".data() and .size() are private"

 

 LNK2038 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”

 加入预处理#define _ITERATOR_DEBUG_LEVEL 0 

 可能是Debug项目用到了Release的库 

 

 LNK2038 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”

项目属性-C/C++-代码生成-运行库 改为多线程(/MT)

 

示例如下,输出视频设备数量

#define WEBRTC_WIN
#define NOMINMAX
#define _ITERATOR_DEBUG_LEVEL 0

#pragma comment(lib, "libwebrtc_full.lib")
#pragma comment( lib, "strmiids.lib" )
#pragma comment(lib, "winmm.lib ")

#include "webrtc/modules/video_capture/video_capture_factory.h"


#include <iostream>


int main()
{
    std::unique_ptr<webrtc::VideoCaptureModule::DeviceInfo> info(webrtc::VideoCaptureFactory::CreateDeviceInfo());

    if (info) {
        int num_devices = info->NumberOfDevices();
        std::cout << (num_devices);
    }
    
    std::cout << "Hello World!\n"; 
}

 

转载于:https://www.cnblogs.com/zwb800/p/10775594.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值