编译webrtc就挺困难的,因为要访问的工具、代码仓库等等都很不容易,编译完成后,拿webrtc.lib到项目里一集成,你可能就会遇到这个问题:

error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in main.obj

如果用的是中文版的VC++,如错信息是这样的

error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.obj 中) 错误

但是,你还会发现在Release模式编译链接就没有这个错误哦。

你去搜索,可以发现原因是“当前工程是Debug版本,而引用的库文件时Release版本”,然后你就去编译了一个Debug版本的webrtcd.lib,然而,还是有这个错误,这时候你再全网搜索也找不到正确答案了,但有可能找到一个不完美的答案,那就是在项目中定义_ITERATOR_DEBUG_LEVEL=0,链接错误没有了,但运行起来可以会突然间崩溃,进程退出,影响开发和调试。

我去翻了gn args --list <out_dir> 命令的几百个参数,看花了眼睛,才终于彻底解决这个问题,这就是为什么我要在这里写来的原因:希望读者能在这里快速找到解决方案。


我强烈建议编译webrtc时,分开Debug和Release两个版本,它默认的编译参数是Release的。方法是在生成Debug版本时,执行gn gen out/Debug --args="is_debug=true",而生成Release版本时执行gn gen out/Release --args="is_debug=false"

很高兴在这里引出args参数,其实除了is_debug还有很多参数可以加上去,上文说过了,有几百个。如果你有很多参数通过命令行传递过去的话,你会烦死的,所以gn其实支持参数文件,你细心找一下,会在out/Debugout/Relaese有一个args.gn文件,你用记事本打开,发现之前传递的is_debug=true参数正好好地躺在里面呢。


回到正题,_ITERATOR_DEBUG_LEVEL不匹配的解决方案就是在Debug版本的args.gn中写入enable_iterator_debugging=true参数,然后再执行gn gen out/Debug重新生成文件,再调用ninja编译就可以了。

不过,要记得在Release版本中不要加这个参数。

当webrtc遇上_ITERATOR_DEBUG_LEVEL相关推荐

  1. 推荐系统遇上深度学习,9篇阿里推荐论文汇总!

    作者 | 石晓文 转载自小小挖掘机(ID: wAIsjwj) 业界常用的推荐系统主要分为两个阶段,召回阶段和精排阶段,当然有时候在最后还会接一些打散或者探索的规则,这点咱们就不考虑了. 前面九篇文章中 ...

  2. 华为平板电脑_当5G遇上平板电脑,华为MatePad Pro 5G带来了什么?

    5G已经来临,科技产品向5G升级已是大势所趋,这更是检验实力的探索之路. 2月24日,华为在巴塞罗那在线发布了一系列新品,其中,华为面向全球推出的5G高端旗舰平板,同时也是全球首款公开发布的5G平板华 ...

  3. 404未找到是什么意思_为什么老遇上404 not found?你懂的

    文章转载自公众号:一只学霸(bajie203) 昨天晚上 大毛火急火燎地打开了电脑 戴上了耳机 不到两分钟 -- 我们往前一凑 登等 果然是大家最害怕的一幕出现了 学霸在网上冲浪多年 留下的都是美好的 ...

  4. 《当用户体验设计遇上敏捷》一3.5 小结

    本节书摘来自异步社区<当用户体验设计遇上敏捷>一书中的第3章,第3.5节,作者[英]Lindsay Ratcliffe , Marc McNeill,更多章节内容可以访问云栖社区" ...

  5. 当网络安全遇上大数据分析(9)

    2012年3月份,Gartner发表过一篇报告--Information Security Is Becoming a Big Data Analytics Problem .里面主要就讲到了针对大规 ...

  6. html实体编码遇上js代码

    单双引号 在js代码中 在js中单.双引号引起来的是字符串,如果我们要在字符串中使用单.双引号,需要反斜杠进行转义 let str='user\'s name'; // or let str=&quo ...

  7. SQL SERVER 2008 R2 SP1更新时,遇上共享功能更新失败解决方案

    SQL SERVER 2008 R2 SP1更新时,遇上共享功能更新失败的问题,可作如下尝试: 更新失败后,在windows的[事件查看器→应用程序]中找到来源为MsiInstaller,事件ID为1 ...

  8. 当微信小程序遇上TensorFlow:Server端实现补充

    在前面一篇文章<当微信小程序遇上TensorFlow:Server端实现>中,我们探讨了微信小程序server端的实现.今天在调试微信小程序时才发现一个问题,那就是:微信小程序要求HTTP ...

  9. 当深度学习遇上异构并行计算

    当深度学习遇上异构并行计算 近几年来,以深度神经网络(DNN)为代表的深度学习如火如荼,深度学习的研究领域从开始的图像识别(如imagenet比赛)到现在的自然语言处理,几乎有席卷一切机器学习研究领域 ...

最新文章

  1. 关于机器学习算法的16个技巧
  2. 机器学习:循环神经网络知识要点
  3. SDUT 母牛的故事
  4. matlab中PDE工具箱如何使用,使用PDE工具箱求解偏微分方程
  5. java精确测量文本高度_Android精确测量文本宽高及基线位置的方法
  6. 图像处理常用边缘检测算子总结
  7. linux安装elasticsearch5.5
  8. 790. Domino and Tromino Tiling
  9. app测试-兼容性测试与云测试技术
  10. PHP新闻APP,【优速软件】APP/小程序接口:全部新闻列表,POSCMS,CodeIgniter技术文档,PHP开发文档,迅睿CMS框架官方教程...
  11. afc系统服务器维护,自动售检票系统AFC中央系统维护员中级业务模型.PDF
  12. excel处置4000行数据卡_Pandas读取并修改excel的示例代码
  13. 用matlab求三重积分格式,matlab求三重积分
  14. 如何将MKV的字幕提取出来
  15. python excel 填充颜色_pandas to_excel 添加颜色操作
  16. python创建快捷方式_python创建桌面快捷方式的代码详解
  17. RDLC报表打印尺寸不匹配的问题
  18. 2023 IAPP影视解析源码
  19. 对中国四大名著--红楼梦 使用jieba进行分词处理 排除去停词 统计完整词频并按降序排列 前20词绘制词云图
  20. BT种子文件格式和Bencoding编码

热门文章

  1. C语言学习日记(12)——回溯法解迷宫(1)
  2. 一线主板的电容用料分析
  3. C语言编程实现求解应力向量,基于MATLAB与Visual+C%2b%2b实现主应力的编程求解.pdf...
  4. 计算机专业 俄语,俄语计算机专业词汇
  5. 《惢客创业日记》2019.08.18(周日)网络名词与低智商者的狂欢(三)
  6. VLAN的划分及设计方案
  7. 详解2D激光雷达运动畸变去除
  8. inout的具体使用方法
  9. 头脑风暴优化算法(Brain Storming Optimization Algorithm, BSO)
  10. 北京内推 | 联想研究院招聘计算机视觉算法实习生